通过snapshot做跨集群数据同步时,在执行拷贝脚本里没有指定所有者及所有组,导致clone时没有权限,客户端卡死。master一直报错,经过一系列操作后,导致RIT异常。
因之前使用hbase1.2.6版本可以通过hbck做修复,但habse2.0之后,大多hbck命令已经无法使用
(1)通过删除hdfs相关目录及zk下hbase目录等操作无效
(2)删除hbase:meta表中相关表记录无效
(3)删除zk下hbase目录,重启无效
由于HBCK2已经被剥离出HBase成为了一个单独的项目,如果你想要使用这个工具,需要根据自己HBase的版本,编译源码。
GitHub地址为:https://github.com/apache/hbase-operator-tools.git
(1)下载后在项目根目录下编译:mvn clean install -DskipTests(普通方式编译会报错)
现在使用的版本是hbase2.1.0版本,不支持编译hbck2,所以使用的默认hbase2.1.6编译完成,在hase-hbck2的target目录下可以找到我们最后需要的jar
hbase hbck -j ./hbase-hbck2-1.1.0-SNAPSHOT.jar <命令>
(2)使用assigns方法解决 RIT
hbase hbck -j ./hbase-hbck2-1.1.0-SNAPSHOT.jar unassigns
将一个或多个region unassign,返回值是创建的pid则为成功,-1则为失败。
在hbase页面找到rit相关的regionname
(3)在hbase界面上找到Procedure相关进程id释放
hbase hbck -j ./hbase-hbck2-1.1.0-SNAPSHOT.jar bypass
当rit显示后,hbase依然不正常,hbaseshell无法操作,使用hbase hbck检查显示 Master is initializing
手机扫一扫
移动阅读更方便
你可能感兴趣的文章