环境
Hbase 版本:2.0
问题原因
hbase长时间出现RIT,并且发生RIT的Region是已经删除了的Hbase表,表未删除的情况下执行assgin可以消除该问题
Hbase Region in transition (RIT) 异常解决:https://datamining.blog.csdn.net/article/details/83012500
表删除后,执行assgin 会提示超时,表的Region不存在无法执行 该命令。
解决方法
Hbase 2.x 版本 RIT信息已经不再Zookeeper中保存
AssignmentManagerV2:https://yq.aliyun.com/articles/601096
首先我们删除 hbase:meta 中的region元信息,该表已经不再在了,元信息也是没有用的垃圾数据。
上图框中的内容就是存在 meta表中的rowkey,我们直接去删除就可以
执行
hbase(main):028:0> deleteall 'hbase:meta','ods_temp:article_201946,201911148ba82019111417250_4438580456290645,1573830736676.554265c5fc696d51402757916fcb7cf9.'
Took 0.3505 seconds
1. 删除meta表数据
2. 停止Master服务
3. 删除/hbase/MasterProcWALs 下的文件
不删除该文件,master重启后还是会读取该日志文件
hdfs dfs -rm /hbase/MasterProcWALs/pv2-00000000000000000001.log
我们大概看下内容,发现包含RIT的信息
如果不删除该日志文件,我们重启master服务,会发现RIT还是存在,但是state变成了OFFLINE,server 变成 null
4. 启动master服务
发现已经没有RIT问题了
总结
当RIT发生的时候,是执行不了 balance 的,所以永久RIT的状况要及时解决。
正常使用情况下的RIT问题基本不需要处理,这种永久性RIT问题出现的频率不会很高,删除元数据需谨慎,最好在测试环境测试后,再在生产环境使用。