原博客地址:https://blog.csdn.net/zhangshenghang/article/details/104835735?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-0.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=3

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,我们直接去删除就可以

执行


 
 
  1. hbase(main):028:0> deleteall 'hbase:meta', 'ods_temp:article_201946,201911148ba82019111417250_4438580456290645,1573830736676.554265c5fc696d51402757916fcb7cf9.'
  2. 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问题出现的频率不会很高,删除元数据需谨慎,最好在测试环境测试后,再在生产环境使用。

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐