`

查看HBase表在HDFS中的文件结构

阅读更多

为了查看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服务器配置文件中指定的存储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=/

 

15
1
分享到:
评论
3 楼 dazeman 2014-03-12  
您好,在hdfs上对应我的表的ColumnFamily目录下没有任何文件。但是在hbase shell下scan是有数据的。请问是请什么情况。
2 楼 greatwqs 2014-01-11  
wangxf314 写道
您好,在看到的文件内容都是乱码,请问需要修改什么吗?

肯定有一些乱码的, 这个跟HFile的格式有关,还有就是你查看的工具要支持UTF-8编码,可以解决局部的乱码.
1 楼 wangxf314 2014-01-10  
您好,在看到的文件内容都是乱码,请问需要修改什么吗?

相关推荐

    Hbase 表设计与操作

    HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtable...

    Hbase与zookeeper文档

    HBase即Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在普通的PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtable利用...

    2-1-HBase.pdf

    HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。 它是Hadoop的生态系统,提供对数据的随机实时读/写访问,是Hadoop文件系统的...

    hbase-1.4.9-bin.tar.gz

    HBase是一个数据模型,类似于谷歌的大表设计,可以提供快速随机访问海量结构化数据。它利用了Hadoop的文件系统(HDFS)提供的容错能力。 它是Hadoop的生态系统,提供对数据的随机实时读/写访问,是Hadoop文件系统的...

    HBASE讲义文档

    基于hadoop的数据库工具 来源于google的一片论文BigTable 后来由Apache做了开源实现 就是HBase ... HBase利用HadoopHDFS作为其文件存储系统,利用Hadoop的MapReduce来处理HBase中的海量数据,利用Zookeeper作为协调

    Hadoop之HBase简介

    HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtable利用...

    大数据云计算技术系列 Hadoop之Hbase从入门到精通(共243页).pdf

    上图描述了Hadoop EcoSystem中的各层系统,其中HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和...

    09.hbase的核心特性--基于hdfs-分布式数据管理--表结构.mp4

    09.hbase的核心特性--基于hdfs-分布式数据管理--表结构.mp4

    HBase技术介绍简介 NOSQL数据库 入门

    HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtable利用...

    hbase-0.90.5.tar.gz

    HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtable...

    hbase-saite.xml需要修改的详细配置

    hbase-saite.xml需要修改的详细配置,HBase – Hadoop Database,是一个高 可靠 性、高性能、面向列、可伸缩的 分布式存储系统 ,利用HBase技术可在廉价PC Server上搭建起大规模 结构 化 存储 集群。. 与FUJITSU ...

    java大数据内容_3HBase

    HBASE是Google Bigtable的开源实现,但是也有很多不同之处,比如:Google Bigtable利用GFS作为其文件存储系统,HBASE利用Hadoop HDFS作为其文件存储系统,Google运行MapReduce来处理Bigtable中的海量数据,HBASE同样...

    实验二:熟悉常用的HDFS操作

    (1)理解 HDFS在Hadoop体系结构中的角色。(2)熟练使用HDFS操作常用的 Shell命令。(3)熟悉HDFS操作常用的Java API。 A.2.2 实验平台 (1)操作系统:Linux(建议Ubuntu 16.04)。(2) Hadoop版本:2.7.1。 (3)JDK版本:1.7...

    hive 整合 hbase

    HBase是建立在HDFS上的面上列的数据库。 由于HDFS不支持update操作,只支持delete和insert操作。所以,Hbase对表的操作也不支持update,同时也不支持delete, 只有一个insert的操作,所有的操作都是insert操作。当...

    详解Hadoop核心架构HDFS+MapReduce+Hbase+Hive

    通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。通过这一阶段的调研总结,从内部机理的...

    Hbase_存储结构.pptx

    Apache HBase™是Hadoop数据库,是一个分布式,可扩展的大数据存储。 当您需要对大数据进行... 正如Bigtable利用Google文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS之上提供类似Bigtable的功能。

    HBASE数据库.docx

    是建立在 hdfs 之上,提供高可靠性、高性能、列存储、 可伸缩、实时读写 nosql 的数据库系统。 它介于 nosql 和 RDBMS 之间,仅能通过主键(row key)和主键的 range 来检索数据,仅支持单行事务(可通过 hive 支持来...

    apache_hbase_reference_guide.pdf

    Apache HBase™是Hadoop数据库,这是一个分布式,可伸缩的大数据存储。当您需要对大数据进行...正如Bigtable利用Google文件系统提供的分布式数据存储一样,Apache HBase在Hadoop和HDFS之上提供类似于Bigtable的功能。

    HBase.docx

    1.查看表 15 2.新建表 16 3.描述表 16 4.删除表 17 5.添加数据 17 6.查询数据 18 7.删除数据 19 三、HBase的架构以及各个模块的功能 19 一:整体架构 20 1.体系结构 20 2.物理模型 20 3.存储体系 22 4.HDFS上的目录...

    hbase-1.1.5-bin版本的压缩包,下载到本地解压后即可使用 HBase 是一个开源的、分布式的NoSQL数据库

    HBase 是一个开源的、分布式的、版本化的 NoSQL 数据库(也即非关系型数据库),它利用 Hadoop 分布式文件系统(Hadoop Distributed File System,HDFS)提供分布式数据存储。与传统的关系型数据库类似,HBase 也以...

Global site tag (gtag.js) - Google Analytics