【HBase基础】-- HBase 在 HDFS 上的目录说明
原创
©著作权归作者所有:来自51CTO博客作者high2011的原创作品,请联系作者获取转载授权,否则将追究法律责任
1 说明
HBase 在 HDFS 上的目录共有 3 部分:根目录、表目录和 Region 目录。
2 目录说明
2.1 根目录
xml 配置:<name> hbase.rootdir</name>
默认 “/hbase”
(1)/hbase/WALs
被 HLog实例管理的WAL文件。
## /hbase/WALs/data-hbase.com,60020,1542159360923
对于每个HregionServer,日志目录中都包含一个对应的子目录
## hbase/WALs/data-hbase.com,60020,1542159360923/data-hbase.com%2C60020%2C1542159360923.1453787240598
在每个子目录下有多个HLog文件(因为日志滚动)
(2)/hbase/oldWALs
当/hbase/WALs 中的HLog文件被持久化到存储文件中,不再需要日志文件时,它们会被移动到/hbase/oldWALs目录。
## /hbase/oldWALs/data-hbase.com%2C60020%2C1542159360923.1443787452518
具体的oldWALs文件。
(3)/hbase/hbase.id
集群的唯一ID
(4)/hbase/hbase.version
集群的文件格式版本信息
(5)/hbase/corrupt
损坏的日志文件,一般为空,不存在损坏的文件
(6)/hbase/archive/
特别重要!!
存储表的归档和快照,HBase 在做 Split或者 compact 操作完成之后,会将 HFile 移到archive 目录中,然后将之前的 hfile 删除掉,该目录由 HMaster 上的一个定时任务定期去清理。
存储表的归档和快照具体目录:/hbase/archive/data/default/表名/region名/列族名/fd2221d8d1ae4e572c21882f0ec7cdsa6
(7)/hbase/.tmp
当对表做创建或者删除操作的时候,会将表move 到该 tmp 目录下,然后再去做处理操作。
(8)/hbase/data
hbase存储数据的核心目录
## /hbase/data/hbase
该目录存储了存储了 HBase 的 namespace、meta 和acl 三个系统级表。
namespace 中存储了 HBase 中的所有 namespace 信息,包括预置的hbase 和 default。acl 则是表的用户权限控制。
- /hbase/data/hbase/meta
- /hbase/data/hbase/namespace
- /hbase/data/hbase/acl
## /hbase/data/default/
该目录存储所有用户数据表:/hbase/data/default/表名
2.2 表目录
/hbase/data/default/表名/.tabledesc
表的元数据信息
## /hbase/data/default/PERFORMANCE_TEST/.tabledesc/.tableinfo.0000000002
表的元数据信息具体文件
## /hbase/data/default/表名/.tmp
中间临时数据,当.tableinfo被更新时该目录就会被用到
## /hbase/data/default/表名/f569a17359edb2250cdf07964be606a7(由region的表名+Start Key+时间戳产生的hashcode)
表中每一个region的目录
2.3 Region 目录
(1)/hbase/data/default/表名/region名/.regioninfo
包含了对应 region 的 HRegionInfo 的序列化信息,类似.tableinfo。hbase hbck 工具可以用它来生成丢失的表条目元数据信息.
(2)/hbase/data/default/表名/region名/列族名
每个列族的所有物理数据文件
(3)/hbase/data/default/表名/region名/列族名/文件名
hbase 存储数据文件的目录
(4)/hbase/data/default/表名/region名/.tmp(按需创建)
用来存储临时文件,比如某个合并产生的重新写回的文件。
3 参考
https://hbase.apache.org/book.html#quickstart