HBase 在 HDFS 存储目录结构、在 Zookeeper 的目录结构
前言
HBase 在 HDFS 存储目录结构、在 Zookeeper 的目录结构
在 HDFS 路径
HBase 在 HDFS 默认根目录: /hbase
配置项 <name> hbase.rootdir </name>
1 | [root@massive-dataset-new-005 ~]# hadoop fs -ls /hbase |
MasterProcWALs 解释下。由于目前几乎所有的集群操作都是通过 procedure 进行的。
procedure 执行的每一步都会以log的形式持久化在 HBase 的 MasterProcWals 目录下,这样 master 在重启时也能通过日志来恢复之前的状态并且继续执行。
完成的操作日志一段时间后会被删除
/hbase/archive 目录下的数据会过期清理,但是 Snapshot 对应的数据不会被清理,除非删除对应 Snapshot。
只要原来的文件有被删除的情况,如 Compaction,Split, Drop 操作,那么快照所引用的hfile文件都会归档到archive的对应表目录中。
HBase 的表数据目录首先是 namespace。hbase、default 是 HBase 自带的 namespace
1 | [root@massive-dataset-new-005 ~]# hadoop fs -ls /hbase/data |
hbase 这个 namespace 下面存储了 HBase 的 namespace、meta 和 acl 三个表。
如果没有开启 HBase 权限的话不会有 acl 这个表。 启用 HBase 授权。设置 hbase.security.authorization = true
1 | [root@aaadddccc ~]# hadoop fs -ls /hbase/data/hbase |
每张表都维护 tabledesc 和 regioninfo
1 | [root@massive-dataset-new-005 ~]# hadoop fs -ls /hbase/data/default/tu |
在 zk 目录结构
查看 Zookeeper 内部 HBase 相关数据,有三个主要的渠道:
- 通过 hbase shell 命令 zk_dump 查看
- 通过 hbase zkcli 查看
- 通过 Zookeeper 查看
1 | [zk: localhost:2181(CONNECTED) 0] ls /hbase |
1 | hbase(main):001:0> zk_dump |
关于输出结果的解读,就不去细说了,感兴趣的兄弟,自己去问度娘吧。
参考链接