一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

发布一下 0 0

1. 问题起因

通过snapshot做跨集群数据同步时,在执行拷贝脚本里没有指定所有者及所有组,导致clone时没有权限,客户端卡死。master一直报错,经过一系列操作后,导致RIT异常。

2. 异常记录

  • 不指定所有者,默认权限是hdfs:hbase,会导致异常
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 执行clone_snapshot <snapshot_name>,<table_name>时,master异常信息
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 经过一系列操作后(重启、删除hdfs相关目录)出现了RIT:
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

3. 解决过程

因之前使用hbase1.2.6版本可以通过hbck做修复,但habse2.0之后,大多hbck命令已经无法使用

一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 于是尝试其他操作:

(1)通过删除hdfs相关目录及zk下hbase目录等操作无效

(2)删除hbase:meta表中相关表记录无效

(3)删除zk下hbase目录,重启无效

4. 最终通过hbck2解决

由于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

一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 使用方法:

hbase hbck -j ./hbase-hbck2-1.1.0-SNAPSHOT.jar <命令>

(2)使用assigns方法解决 RIT

hbase hbck -j ./hbase-hbck2-1.1.0-SNAPSHOT.jar unassigns <regionname>

将一个或多个region unassign,返回值是创建的pid则为成功,-1则为失败。

在hbase页面找到rit相关的regionname

一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 执行命令,如图返回进程号为1819
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • master日志:
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 可以看到rit数减少了一个
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 重复以上操作,rit解决!

(3)在hbase界面上找到Procedure相关进程id释放

hbase hbck -j ./hbase-hbck2-1.1.0-SNAPSHOT.jar bypass <Procedure id>

当rit显示后,hbase依然不正常,hbaseshell无法操作,使用hbase hbck检查显示 Master is initializing

一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 执行后返回true代表成功,页面会显示RUNNABLE(Bypass)
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 可以看到当前procedure还有很多子进程
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 经过大约一小时之后,进程才结束
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 此时页面也显示完成
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 随后消失
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

  • 此时,检查hbase,hbase hbck,显示OK,解决过程到此结束!
一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)

版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除

本文地址:http://0561fc.cn/188310.html