问题:hbase集群请求超负载,导致HRegionServer服务宕掉,出现Region in Transition状态
重启后,如果Region in Transition一直存在很长时间,需要查看是否被某个producer锁住。
hbase修复工具下载地址
这里是源码,需要自己下载编译成jar包。
https://github.com/apache/hbase-operator-tools
直接下载地址:
https://download.csdn.net/download/wang6733284/86871143?spm=1001.2014.3001.5501
解决方法:
(1)找到该region对应的锁,解锁
hbase hbck -j hbase-hbck2-1.3.0-SNAPSHOT.jar bypass -or 90402
(2)关闭regionhbase
hbase hbck -j hbase-hbck2-1.3.0-SNAPSHOT.jar unassigns -o b2e5169fc414ee37a59b2bf2972c9165
(3)再重新分配该region
hbase hbck -j hbase-hbck2-1.3.0-SNAPSHOT.jar assigns -o b2e5169fc414ee37a59b2bf2972c9165
(4)如果还出现RIT状态,重复步骤1-3
当该表中region全部正常open,并且么有Region in Transition存在的时候,即可正常访问。
如果region是close状态,虽然在phoenix中查询hbase的表正常,但是在java请求数据时,会出现异常"ERROR 1108 (XCL08): Cache of region boundaries are out of date."
故障原因:
(1)如果是安装在虚拟机上的Hbase,频繁的直接关机和重启会导致出现RIT状态。
(2)直接手工KillHbase的服务或者异常停机也会导致该情况发生。
数据修复记录:
(1)在2.4.11版本实践时,可行的。但是当regionserver重启后,又会出现RIT状态。所以建议能删除表重新创建,还是建议重新创建表。
(2)在2.4.3版本实践时,发现不可行。