hbase线上region不一致问题相关数据修复
问题现象
现场使用hbase hbck 对集群进行检查时,出现region不一致的异常情况
问题分析
1. 对hbck检查中缺少 .regioninfo文件如下异常进行修复
ERROR: Orphan region in HDFS: Unable to load .regioninfo from table xxx in
hdfs dir hdfs://nameservice/hbase/data/default/xxx/5166108abcafa88877g8869f9
It may be an invalid format or version file. Treating as an orphaned
检查发现这个xxx表在控制台上没有找到,后台hbase shell中list出所有表名也没有发现这个表,这个表在hbase中已经不存在了。在hdfs上查看此表也没有数据,只有一个recovered.edits文件且大小为0。
如果此表在hbase中已经不存在了,只在hdfs上有对应目录且没有数据,已经是垃圾文件,可以删除或mv到hdfs的其他目录。
处理方案:把此表目录移走后再hbck检查,已没有这个表相关的异常。类似的hbase报错表,可以按照上面的方法处理,将表目录删除或者移走备份到其他目录。
备注:如果是表存在且是enable状态,一般可以将该region先下线再上线。如果有.regioninfo文件就可以重建。
2. hbase中表是存在的,但控制台没有该region,对应region在hdfs上没有真实数据
处理方案: