hbase目录解析

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weiweiox

打赏续杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值