hbase数据存储

自0.96版本之后,hbase 源码结构上做了很大的优化,目录结构也发生了变化,做了精简和优化,这里以1.2.0-cdh5.7.2为例介绍,目录如下:
1,在hdfs的路径

[root@namenode1 ~]# hadoop fs -ls /hbase
Found 9 items
drwxr-xr-x   - hbase hbase          0 2017-01-07 16:02 /hbase/.tmp --当对表做创建或者删除操作的时候,会将表move 到该 .tmp 目录下,然后再去做处理操作。
drwxr-xr-x   - hbase hbase          0 2017-01-15 18:59 /hbase/MasterProcWALs
drwxr-xr-x   - hbase hbase          0 2017-01-06 20:34 /hbase/WALs
drwxr-xr-x   - hbase hbase          0 2017-01-10 10:47 /hbase/archive --HBase 在做 Split或者 compact 操作完成之后,会将 HFile 移到archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理.
drwxr-xr-x   - hbase hbase          0 2016-08-17 13:50 /hbase/corrupt --存储HBase做损坏的日志文件,一般都是为空的
drwxr-xr-x   - hbase hbase          0 2016-12-26 15:33 /hbase/data --这个才是 hbase 的核心目录,0.98版本里支持 namespace 的概念模型,系统会预置两个 namespace 即:hbase和default
-rw-r--r--   3 hbase hbase         42 2016-08-05 17:24 /hbase/hbase.id -- 它是一个文件,存储集群唯一的 cluster id 号,是一个 uuid
-rw-r--r--   3 hbase hbase          7 2016-08-05 17:24 /hbase/hbase.version --同样也是一个文件,存储集群的版本号,貌似是加密的,看不到,只能通过web-ui 才能正确显示出来
drwxr-xr-x   - hbase hbase          0 2017-01-15 18:38 /hbase/oldWALs --这里对应0.94的.oldlogs 目录

** /hbase/data/hbase**
这个namespace 下面存储了 HBase 的 namespace、meta 和acl 三个表,这里的 meta 表跟0.94版本的.META.是一样的,自0.96之后就已经将 ROOT 表去掉了,直接从Zookeeper 中找到meta 表的位置,然后通过 meta 表定位到 region。 namespace 中存储了 HBase 中的所有 namespace 信息,包括预置的hbase 和 default。acl 则是表的用户权限控制。
如果自定义一些 namespace 的话,就会再/hbase/data 目录下新建一个 namespace 文件夹,该 namespace 下的表都将 flush 到该目录下。

//表空间的查看
[root@namenode1 ~]# hadoop fs -ls /hbase/data
Found 4 items
drwxr-xr-x   - hbase hbase          0 2016-11-16 10:00 /hbase/data/bdcbasApp
drwxr-xr-x   - hbase hbase          0 2017-01-07 16:02 /hbase/data/default
drwxr-xr-x   - hbase hbase          0 2017-01-09 15:43 /hbase/data/eca_ns
drwxr-xr-x   - hbase hbase          0 2016-08-05 17:24 /hbase/data/hbase

2,每张表都维护 tabledesc和regioninfo

[root@namenode1 ~]# hadoop fs -ls /hbase/data/eca_ns/ECA_SMDA_NORM
Found 3 items
drwxr-xr-x   - hbase hbase          0 2017-01-09 15:43 /hbase/data/eca_ns/ECA_SMDA_NORM/.tabledesc  --这里存储tabledesc的信息
drwxr-xr-x   - hbase hbase          0 2017-01-09 15:43 /hbase/data/eca_ns/ECA_SMDA_NORM/.tmp
drwxr-xr-x   - hbase hbase          0 2017-01-09 16:44 /hbase/data/eca_ns/ECA_SMDA_NORM/f9ff9447086496a3d7adc4bff4aade79     --这里存储的有regioninfo的信息
[root@namenode1 ~]# hadoop fs -ls /hbase/data/eca_ns/ECA_SMDA_NORM/.tabledesc
Found 1 items
-rw-r--r--   3 hbase hbase        292 2017-01-09 15:43 /hbase/data/eca_ns/ECA_SMDA_NORM/.tabledesc/.tableinfo.0000000001
[root@namenode1 ~]# hadoop fs -ls /hbase/data/eca_ns/ECA_SMDA_NORM/
Found 3 items
drwxr-xr-x   - hbase hbase          0 2017-01-09 15:43 /hbase/data/eca_ns/ECA_SMDA_NORM/.tabledesc
drwxr-xr-x   - hbase hbase          0 2017-01-09 15:43 /hbase/data/eca_ns/ECA_SMDA_NORM/.tmp
drwxr-xr-x   - hbase hbase          0 2017-01-09 16:44 /hbase/data/eca_ns/ECA_SMDA_NORM/f9ff9447086496a3d7adc4bff4aade79
[root@namenode1 ~]# hadoop fs -ls /hbase/data/eca_ns/ECA_SMDA_NORM/.tmp
[root@namenode1 ~]# hadoop fs -ls /hbase/data/eca_ns/ECA_SMDA_NORM/f9ff9447086496a3d7adc4bff4aade79
Found 4 items
-rw-r--r--   3 hbase hbase         47 2017-01-09 15:43 /hbase/data/eca_ns/ECA_SMDA_NORM/f9ff9447086496a3d7adc4bff4aade79/.regioninfo
drwxr-xr-x   - hbase hbase          0 2017-01-09 16:44 /hbase/data/eca_ns/ECA_SMDA_NORM/f9ff9447086496a3d7adc4bff4aade79/.tmp
drwxr-xr-x   - hbase hbase          0 2017-01-09 16:44 /hbase/data/eca_ns/ECA_SMDA_NORM/f9ff9447086496a3d7adc4bff4aade79/info   --列族
drwxr-xr-x   - hbase hbase          0 2017-01-09 15:43 /hbase/data/eca_ns/ECA_SMDA_NORM/f9ff9447086496a3d7adc4bff4aade79/recovered.edits

hbase在zk的目录结构

[zk: localhost:2181(CONNECTED) 1] ls /hbase
[replication, meta-region-server, rs, splitWAL, backup-masters, table-lock, flush-table-proc, region-in-transition, online-snapshot, master, running, recovering-regions, draining, namespace, hbaseid, table]

hbase(main):001:0> zk_dump
HBase is rooted at /hbase
Active master address: datanode1,60000,1483706056881
Backup master addresses:
Region server holding hbase:meta: datanode3,60020,1483706055770
Region servers:
 datanode2,60020,1483706054731
 datanode0,60020,1483706054027
 datanode4,60020,1483706055881
 datanode3,60020,1483706055770
 datanode7,60020,1483706055693
 datanode5,60020,1483706054452
/hbase/replication: 
/hbase/replication/peers: 
/hbase/replication/rs: 
/hbase/replication/rs/datanode5,60020,1483706054452: 
/hbase/replication/rs/datanode7,60020,1483706055693: 
/hbase/replication/rs/datanode3,60020,1483706055770: 
/hbase/replication/rs/datanode4,60020,1483706055881: 
/hbase/replication/rs/datanode0,60020,1483706054027: 
/hbase/replication/rs/datanode2,60020,1483706054731: 
Quorum Server Statistics:
 localhost:2181
  Zookeeper version: 3.4.5-cdh5.7.2--1, built on 07/22/2016 19:18 GMT
  Clients:
   /172.16.171.9:48487[1](queued=0,recved=5107,sent=5107)
   /172.16.171.17:36252[1](queued=0,recved=50936,sent=50936)
   /172.16.171.20:47011[1](queued=0,recved=19631,sent=19631)
   /172.16.171.19:62253[1](queued=0,recved=7455,sent=7455)
   /127.0.0.1:18625[1](queued=0,recved=22,sent=22)
   /172.16.171.11:34643[1](queued=0,recved=7456,sent=7456)
   /127.0.0.1:18621[1](queued=0,recved=3,sent=3)
   /172.16.171.21:38192[1](queued=0,recved=7467,sent=7467)
   /172.16.171.17:36254[1](queued=0,recved=50936,sent=50936)
   /172.16.171.5:60302[1](queued=0,recved=7456,sent=7456)
   /172.16.171.9:48540[1](queued=0,recved=25518,sent=25518)
   /172.16.171.9:32467[1](queued=0,recved=7455,sent=7455)
   /172.16.171.8:61522[1](queued=0,recved=10566,sent=10586)
   /172.16.171.19:16777[1](queued=0,recved=25518,sent=25518)
   /127.0.0.1:18626[0](queued=0,recved=1,sent=0)
   /172.16.171.8:45515[1](queued=0,recved=7455,sent=7455)
   /172.16.171.12:18371[1](queued=0,recved=381742,sent=381742)
  
  Latency min/avg/max: 0/3/51663
  Received: 1431771
  Sent: 1461307
  Connections: 17
  Outstanding: 0
  Zxid: 0x2600046a80
  Mode: follower
  Node count: 5349
    原文作者:wangliang938
    原文地址: https://www.jianshu.com/p/4e4f5f558816
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞