Hbase在hdfs上的存储位置,根目录是由配置项hbase.rootdir决定,默认就是 /hbase
只要 Master 或 RegionServer 还在跑,WALs 、 oldWALs 、 archive 、 data 就会持续变化;
CDH/HDP/社区版 2.x/3.x 常见目录;早期 0.94/0.98 目录更少。
/hbase ├── .tmp # 临时工作区:建表、删表、快照等操作时的中间目录 ├── .tmp/data # 2.0 以后拆出的子目录,同上 ├── WALs # 所有 RegionServer 正在写的 Write-Ahead-Log(HLog) │ └── <rs-host,port,STARTCODE>/ │ └── <log-file> # 每 1 h(或满足 roll 条件)roll 一次 ├── archive # 被“归档”的旧文件:快照、split/merge、major compact 后保留的旧 HFile ├── compaction.dir # 正在做 compaction 时的临时输出目录(完成后立即搬走) ├── corrupt # Master 在启动时检测到“坏”HFile 会移到这里 ├── data # 表数据本体(最重要) │ ├── default # 默认命名空间(没显式指定 ns 的表都在这里) │ ├── ns1 # 自定义命名空间 │ └── hbase # 系统命名空间,存 meta、namespace 两张系统表 │ ├── meta # 就是 .META. 表,region→regionserver 的映射 │ └── namespace # 系统表,保存所有命名空间的元数据 ├── hbase.version # 集群文件格式版本号(目前固定写 “8”) ├── master.store.files # MasterProcWAL 的持久化目录(2.x+ 引入的 Master 级 WAL) ├── oldWALs # WALs 中 roll 出来的历史日志;超过 TTL 后由 Cleaner 删除 ├── recovered.edits # RegionServer 宕机后,Master split WAL 产生的“恢复日志” ├── snapshots # 快照元数据目录(实际数据仍指向 archive 或原文件) ├── .hbase-snapshot # 临时快照工作目录(快照完成即删除) ├── splitWAL # 已废弃,早期版本 split WAL 临时目录 ├── staged # 用于 snapshot restore/clone 的“暂存”目录 ├── .in_use.lock # 集群级锁文件,防止多 Master 同时写 └── hbck2 # HBCK2 工具修复时产生的临时目录(可手动清理)
/hbase/oldWALs/
当WALs中的HLog文件被持久化到存储文件中,不再需要日志文件时,它们会被移动到/oldWALs目录。
当/hbase/WALs中的HLog文件被持久化到存储文件时,它们就会被移动到/hbase/oldWALs
/hbase/WALs
被HLog实例管理的WAL文件。
在该目录下,对于每个RegionServer,都会对应1~n个子目录。
/hbase/.tmp
这个目录用来存储临时文件,当对表做创建或者删除操作的时候,首先会将表move 到该 tmp 目录下,然后再去做处理操作。
/hbase/MasterProcWALs
这部分存储的是hbase master的状态日志
出现过的问题:
MasterProcWals状态日志过多,如果重启HBase Master,可能会导致HBase Master启动失败。因为HBase Master进入活动状态需要读取并实例化所有正在运行的程序当前记录在/hbase/MasterProcWALs/目录下对应的文件。如果此文件夹太大,HBase Master将在完全变为活动状态之前超时并崩溃。
1、如果MasterProcWals状态日志过多,那么重启HBase Master,可能会导致HBase Master启动失败。目前临时的解决方案是备份/hbase/MasterProcWALs目录下的所有文件后,删除该目录下所有文件并重启HBase Master。
2、建议定时清理MasterProcWals状态日志,可以通过HBase自带的清理器插件处理,也可以自己开发日志清理插件,按要求添加到HBase的classpath 中。
/hbase/corrupt
存储HBase做损坏的日志文件,一般都是为空的。
/hbase/data
hbase的核心目录,系统会预置两个namespace即:hbase和default。/hbase/data/hbase 存储了HBase的namespace、meta两个系统级表。namespace中存储了HBase中的所有namespace信息,包括预置的nbase和default。./data/default/存储所有用户数据表/hbase/data/default/表名。
/hbase/hbase.version
集群的文件格式版本信息。
集群文件格式版本号(目前固定写 “8”)
/hbase/hbase.id
存储集群唯一的cluster id号,是一个uuid。(如:PBUF)
集群唯一的id

2521

被折叠的 条评论
为什么被折叠?



