hbase hbck

1、简介

hbck工具可以检测hbase集群的region一致性和完整性,同时可以修复损坏的集群数据

工作模式两种:一致性检测只读模式,和多阶段修复模式

2、集群的一致性状态

1)region一致性

集群中所有region都被assign,且region在Master内存、ZK和hbase:meta表三个地方一致

2)表完整性

集群中的任意一张表,每个rowkey都仅能存在于一个region区间中

3、集群一致性状态检测

1)命令

hbase hbck

一般集群规模较大尽量不要直接执行,最好是对表进行扫描,直接在命令后加表名即可,多个表直接空格隔开

返回结果为Status: INCONSISTENT 或者Status: OK ;

如果region在move、split、merger时,执行命令是会显示有问题的,所以最好多次执行看

2)常用参数

-details 可以输出更详细的信息

-summary 只打印表和状态的的概要信息

-metaonly 只检查hbase:meta表的状态

4、修复参数

1)修复思路

修复后。使得Region的状态在。regioninfo文件、Master内存、ZK临时节点和hbase:meta表中数据一致

2)常用修复参数

​ -fixAssignments 用来修复region的分配,assign问题,如果有region没有assign或者同时assign到多台RS上等问题

​ -fixMeta 用来修复元数据,即HDFS上和元数据表中记录不一致问题,原则上是认为HDFS是正确的,即如果HDFS中有这个region,元数据表中没有,就在元数据表中添加,如果元数据表多了,就删除

​ -noHdfsChecking 不从hdfs上检查region信息,即假设meta表示正确的

​ -fixHdfsHoles 修复hdfs中的region黑洞,一般会和-fixAssignments -fixMeta参数一起用,或者使用

-repairHoles参数等同于 这三个参数同时使用

​ -fixRITAssignment 修复长RIT region

​ -repair 如果不知道用什么参数的话,就用这个参数,包含了常用的修复参数,也包含个高危操作

​ -help 。。。。。

### 3)慎用参数

​ -checkCorruptHFiles 检查所有Hfile,通过逐一打开Hfile来确定是否可用

​ -sidelineCorruptHFiles 隔离损坏的Hfile,这个参数包含上一个check参数

​ -fixTableLocks 删除已持有超长时间的table lock,默认是10分钟

​ -fixOrphanedTableZnodes 如果表不存在,则在ZK中将ZNOde的状态设置disabled

5、修复案例

1)hbase.version文件丢失

1>现象

集群启动时候会加载hdfs上的这个文件,如果丢失,集群或者损坏,系统就不能启动

2>解决思路

hbase hbck -fixVersionFile

对hbase.version修复或者生成

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐