如何修复Overlap状态的HBase Region
问题
使用hbck工具检查Region状态,如果日志中存在“ERROR: (regions region1 and region2) There is an overlap in the region chain.”或者“ERROR: (region region1) Multiple regions have the same startkey: xxx”信息,表示某些region存在overlap的问题,需要如何解决?
回答
修复步骤如下:
- 执行hbase hbck -j ${CLIENT_HOME}/HBase/hbase/tools/hbase-hbck2-1.1.0-h0.cbu.mrs.*.jar fixInconsistencies tableName命令修复存在overlap的表。
- 执行hbase hbck -j ${CLIENT_HOME}/HBase/hbase/tools/hbase-hbck2-1.1.0-h0.cbu.mrs.*.jar listInconsistencies -run tableName命令检查修复的表是否还存在overlap。
- 登录FusionInsight Manager,选择“集群 > 待操作集群的名称 > 服务 > HBase > 更多 > 执行HMaster倒换”,完成HMaster主备倒换。
- 执行hbase hbck -j ${CLIENT_HOME}/HBase/hbase/tools/hbase-hbck2-1.1.0-h0.cbu.mrs.*.jar listInconsistencies -run tableName命令检查修复的表是否还存在overlap。
- 如果不存在overlap,修复完成。
- 如果存在overlap,从1开始重新执行修复步骤。