为了查看HBASE表在HDFS中的文件结构.
在HBASE中建立一张表结构如下:
{NAME => 'USER_TEST_TABLE', MEMSTORE_FLUSHSIZE => '67108864', MAX_FILESIZE => '1073741824', FAMILIES => [ {NAME => 'info', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', COMPRESSION => 'NONE', VERSIONS => '1', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true' }, {NAME => 'info2', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', COMPRESSION => 'NONE', VERSIONS => '1', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true' } ] }
结构图如下, 往下表插入测试数据, 下面查看此表在HDFS中文件的存储方式.
由于在HBase服务器配置文件中指定的存储HBase文件的HDFS地址为:
hdfs://HADOOPCLUS01:端口/hbase
登录到namenode服务器,这里为HADOOPCLUS01, 用hadoop命令查看hbase在hdfs中此表的文件.
1. 查看Hbase根目录.
[hadoop@HADOOPCLUS01 bin]$ hadoop fs -ls hadoop fs -ls /hbase Found 37 items drwxr-xr-x - hadoop cug-admin 0 2013-03-27 09:29 /hbase/-ROOT- drwxr-xr-x - hadoop cug-admin 0 2013-03-27 09:29 /hbase/.META. drwxr-xr-x - hadoop cug-admin 0 2013-03-26 13:15 /hbase/.corrupt drwxr-xr-x - hadoop cug-admin 0 2013-03-27 09:48 /hbase/.logs drwxr-xr-x - hadoop cug-admin 0 2013-03-30 17:49 /hbase/.oldlogs drwxr-xr-x - hadoop cug-admin 0 2013-03-30 17:49 /hbase/splitlog drwxr-xr-x - hadoop cug-admin 0 2013-03-30 17:49 /hbase/USER_TEST_TABLE
可以看到所有表的信息. 在hdfs中的建立的目录. 一个表对应一个目录.
-ROOT-表和.META.表也不例外, -ROOT-表和.META.表都有同样的表结构, 关于两表的表结构和怎么对应HBase整个环境的表的HRegion, 可以查看上篇转载的文章.
splitlog和.corrupt目录分别是log split进程用来存储中间split文件的和损坏的日志文件的。
.logs和.oldlogs目录为HLog的存储.
.oldlogs为已经失效的HLog(Hlog对HBase数据库写Put已经全部完毕), 后面进行删除.
HLog File 是一个Sequence File,HLog File 由一条条的 HLog.Entry构成。可以说Entry是HLog的基本组成部分,也是Read 和Write的基本单位。
Entry由两个部分组成:HLogKey和WALEdit。
2. 查看建立表hdfs目录内容:
[hadoop@HADOOPCLUS01 bin]$ hadoop fs -ls /hbase/USER_TEST_TABLE Found 2 items drwxr-xr-x - hadoop cug-admin 0 2013-03-28 10:18 /hbase/USER_TEST_TABLE/03d99a89a256f0e09d0222709b1d0cbe drwxr-xr-x - hadoop cug-admin 0 2013-03-28 10:18 /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce
有两个目录, 说明此表已经分裂成两个HRegion.
3. 在查看其中一个HRegion的文件目录.
[hadoop@HADOOPCLUS01 bin]$ hadoop fs -ls /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce Found 4 items -rw-r--r-- 3 hadoop cug-admin 1454 2013-03-28 10:18 /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce/.regioninfo drwxr-xr-x - hadoop cug-admin 0 2013-03-29 15:21 /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce/.tmp drwxr-xr-x - hadoop cug-admin 0 2013-03-29 15:21 /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce/info drwxr-xr-x - hadoop cug-admin 0 2013-03-28 10:18 /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce/info2
.regioninfo 此HRegion的信息. StartRowKey, EndRowKey. 记录Region在表中的范围信息.
info, info2, 两个ColumnFamily. 为两个目录.
4. 再对.regioninfo文件用cat查看内容:
乱码已经过滤, 存储的信息整理:
[hadoop@HADOOPCLUS01 bin]$ hadoop fs -cat /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce/.regioninfo USER_TEST_TABLE,AAA-AAA11110UC1,1364437081331.68b8ad74920040ba9f39141e908c67ce. AA-AAA11110UC1 USER_TEST_TABLE IS_ROOT false IS_META false MAX_FILESIZE 1073741824 MEMSTORE_FLUSHSIZ 6710886 info BLOOMFILTER NONE REPLICATION_SCOPEVERSIONS 1 COMPRESSION NONE TTL 2147483647 BLOCKSIZE 65536 IN_MEMORY false BLOCKCACHE true info2 BLOOMFILTER NONE REPLICATION_SCOPEVERSIONS 1 COMPRESSION NONE TTL 2147483647 BLOCKSIZE 65536 IN_MEMORY false BLOCKCACHE true REGION => {NAME => 'USER_TEST_TABLE,\x00\x00\x00\x0A\x00\x00\x00\x09AAA-AAA11110UC1\x00\x00\x00\x00, 1364437081331.68b8ad74920040ba9f39141e908c67ce.', STARTKEY => '\x00\x00\x00\x0A\x00\x00\x00\x09AAA-AAA11110UC1\x00\x00\x00\x00', ENDKEY => '', ENCODED => 68b8ad74920040ba9f39141e908c67ce, TABLE => {{NAME => 'USER_TEST_TABLE', MAX_FILESIZE => '1073741824', MEMSTORE_FLUSHSIZE => '67108864', FAMILIES => [{NAME => 'info', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}, {NAME => 'info2', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'true'}]}} VT102VT102VT102VT102VT102VT102VT102VT102
5. 查看info ColumnFamily中信息文件和目录:
[hadoop@HADOOPCLUS01 bin]$ hadoop fs -ls /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce/info Found 4 items -rw-r--r-- 3 hadoop cug-admin 547290902 2013-03-28 10:18 /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce/info/4024386696476133625 -rw-r--r-- 3 hadoop cug-admin 115507832 2013-03-29 15:20 /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce/info/5184431447574744531 -rw-r--r-- 3 hadoop cug-admin 220368457 2013-03-29 15:13 /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce/info/6150330155463854827 -rw-r--r-- 3 hadoop cug-admin 24207459 2013-03-29 15:21 /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce/info/7480382738108050697
6. 查看具体保存HBase数据的HDFS文件信息:
[hadoop@HADOOPCLUS01 bin]$ hadoop fs -cat /hbase/USER_TEST_TABLE/68b8ad74920040ba9f39141e908c67ce/info/4024386696476133625 AA-AAA11110UDFinfoChangeType=2 13560596974000 AA-AAA11110UDFinfoCountry=1 13560596974000 AA-AAA11110UDFinfoUpdateTime=13560596974105 13560596974000 AA-AAA11110UDGinfoChangeType=2 13560596974000 AA-AAA11110UDGinfoCountry=1 13560596974000 AA-AAA11110UDGinfoUpdateTime=13560334347205 13560596974000 AA-AAA11110UDHinfoChangeType=2 13560596974000 AA-AAA11110UDHinfoCountry=1 13560596974000 AA-AAA11110UDHinfoUpdateTime=13560281517235 13560596974000
即是上面图片中插入的其中一部分数据.
在HBase中存储时, 对于每个Qualifer有如下5个属性RowKey, ColumnFamily, Qualifer, TimeStamp, Value.
AA-AAA11110UDFinfoCountry=1 13560596974000
# AA-AAA11110UDH 部分对应RowKey;
# info对应了ColumnFamily;
# Country对应Qualifer;
# 1对用Value;
# 13560596974000对应TimeStamp.
后面将分析RowKey与AA-AAA11110UDH的对应关系.
7. 使用HTTP查看文件:
在上面命令中, 也可以有Http查看Hdfs中的文件, 配置在hdfs-site.xml下面配置:
<property> <name>dfs.datanode.http.address</name> <value>0.0.0.0:62075</value> </property>
所以访问HDFS的HTTP的URL为:
http://HADOOPCLUS02:62075/browseDirectory.jsp?namenodeInfoPort=62070&dir=/
相关推荐
标题中的“hadoop的mapreduce把oracle/mysq导入到hbase和hdfs中的程序”指的是一项数据处理任务,利用Hadoop的MapReduce框架,将关系型数据库(如Oracle和MySQL)中的数据高效地迁移至分布式存储系统HDFS(Hadoop ...
本主题将详细讲解如何将HDFS(Hadoop Distributed File System)上的文件导入到HBase中,并以在Cloudera SCM的CDH 4.8.1产品环境中的源代码实现为例进行阐述。 首先,理解HDFS和HBase的基本原理至关重要。HDFS是...
1. **小文件存储**:对于非常小的文件(小于 HDFS 默认的 block 大小,默认为 128MB),HDFS 不是最优选择,因为每个文件的元数据都需要存储在 NameNode 的内存中,这会占用大量资源。 2. **并发写入和随机修改限制*...
- **Map阶段**:在 MapReduce 任务中,Map 函数读取 HDFS 上的数据文件,将每条记录拆分成键值对,其中键可以是 HBase 表的行键和列族信息,值为对应的字段值。 - **Reduce阶段**:Reduce 函数接收来自 Map 的键值...
这样的数据结构可以直接映射到HBase的表结构中,其中`rowkey`作为唯一标识,`f1`表示列族名称,`f1c1`是列限定符,而`f1c1values`则是具体的值。 为了正确解析和处理这些数据,Mapper类扮演了关键角色。在提供的...
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtable...
HBase是构建在HDFS之上,基于列族的分布式数据库,适合处理结构化和半结构化的海量数据,支持快速随机读取。 要实现从HDFS到HBase的数据导入,我们需要以下步骤: 1. **配置环境**:确保你的开发环境中已经安装了...
7. 查看表结构:describe ‘表名’ 8. 删除列族:alter ‘表名’,{NAME=’列名’,METHOD=’delete’} 9. 删除表:drop ‘表名’ 10. 检查一个表是否存在:exists ‘表名’ 11. 判断表是否enable或disable:is_...
本文档详细介绍了一种从HDFS中的冷备份数据恢复至HBase表的方法。此过程适用于使用了HBase 1.1.x 和 Hadoop 2.7.x版本的环境。通过以下步骤,可以有效地将数据恢复到其原始状态,确保业务连续性和数据完整性。 ####...
此外,为了连接到HBase,还需要在项目的`src/main/resources`目录下放置`core-site.xml`、`hdfs-site.xml`和`hbase-site.xml`配置文件。 以下是一些关键的Scala API操作HBase的基本步骤: 1. 引入必要的库: 首先...
HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。 它是Hadoop的生态系统,提供对数据的随机实时读/写访问,是Hadoop文件系统的...
- 查看HDFS信息:通过执行`./bin/hadoop fs`命令,可以查看HDFS的常用操作和文件系统结构。 - 目录操作:创建用户目录,如`./bin/hdfs dfs -mkdir -p /user/hadoop`,并使用`-ls`命令查看目录。 - 文件操作:将...
HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。 它是Hadoop的生态系统,提供对数据的随机实时读/写访问,是Hadoop文件系统的...
HBase是一种分布式的、面向列的数据库管理系统,它利用Hadoop HDFS作为其文件存储系统,使用Hadoop MapReduce来处理HBase中的海量数据,并且使用Zookeeper作为其协同服务。HBase以表的形式存储数据,表由行和列组成...
在IT行业中,大数据处理是当前的关键技术之一,而Hadoop、HDFS和HBase则是其中的核心组件。Hadoop是一个开源框架,主要用于存储和处理大规模数据,而HDFS(Hadoop Distributed File System)是Hadoop的核心部分,是...
- 讲解了在MapReduce作业中如何访问其他HBase表,以及关于推测执行的相关内容。 8. HBase安全部分: - 阐述了HBase的安全机制,包括如何安全地访问HBase,以及HBase的访问控制机制。 - 提到了如何进行安全批量...
1. **层次存储体系**:通过建立多级缓存体系,包括应用程序缓存、HBase的HBlock缓存以及操作系统层面的HDFS文件缓存,Facebook极大提高了数据访问速度,减少了磁盘I/O,增强了系统的响应能力。 2. **容错机制改进**...
### 知识点详解 #### 一、HBase与MySQL数据抽取概述 1. **HBase简介**:HBase是...通过以上步骤,我们可以成功地将MySQL中的数据抽取到HBase表中,从而利用HBase的高性能和大数据处理能力来优化数据访问和分析流程。
它采用了Google的Bigtable论文中提到的数据模型,并且与Hadoop的HDFS文件系统紧密集成,适合存储大量非结构化数据。 HBase的历史可以追溯到2006年,当时作为一个项目发起,后于2010年升级成为Apache的顶级项目。...
1. HBase到HDFS:可以通过HBase的Export工具,将HBase表的数据导出到HDFS文件,然后进行进一步处理或备份。 2. HDFS到HBase:可以使用HBase的Import工具,将HDFS上的数据文件加载到HBase表中。此过程通常包括预处理...