环境说明

  1. HBase:2.1.0+cdh6.2.0

问题描述

  1. 测试环境供3个regionsever,同事压测导致HBase集群出现故障,然后又重启了,重启完毕发现很多Region处于RIT状态

  2. 使用hbase hbck命令检查,发现很多region没有deploy到任何的RegionServer上,本来想使用hbase hbck -fixAssignments命令修复的,发现HBase 2.x不支持了

  3. 去github上下载代码,进行编译https://github.com/apache/hbase-operator-tools/tree/master/hbase-hbck2,编译好的jar包如下,解压密码123456

hbase-hbck2-1.1.0-SNAPSHOT.zip

问题解决

  1. 使用hbase hbck筛选出没有deploy的Region,可以保存到一个文件中,如region.info

  2. 然后使用以下命令进行修复

    1. hbase hbck -j hbase-hbck2-1.1.0-SNAPSHOT.jar assigns -i region.info
  3. 还遇到一个问题就是删除hbase表的时候提示需要disable,运行disable表又提示 已经处于disable状态了,也可以使用这个工具来解决

    1. hbase hbck -j hbase-hbck2-1.1.0-SNAPSHOT.jar setTableState namespace:tableName DISABLED