错误:在表HBase中发现不一致



我们使用HBase 0.94.7和两个区域服务器。我们的地区总是处于转型期。当我执行hbase hbck时,会发现不一致。但CCD_ 2和CCD_。这是来自hbase hbck 的日志

ERROR: Region { meta => LogTable,x00x00x01xE8x00x00x01@x07Bx02xCFxEFxCE>.,1374573828457.f41ff2fae25d1dab3f16306f4f995369., hdfs => hdfs://master:8020/hbase/LogTable/f41ff2fae25d1dab3f16306f4f995369, deployed =>  } not deployed on any region server.
ERROR: There is a hole in the region chain between x00x00x01xE8x00x00x01@x07Bx02xCFxEFxCE>. and x00x00x01xFCx00x00x01@x08x1E1x0Fx07&xCEx11.  You need to create a new .regioninfo and region dir in hdfs to plug the hole.
ERROR: Found inconsistency in table LogTable
ERROR: Found lingering reference file hdfs://master:8020/hbase/LogTable/f41ff2fae25d1dab3f16306f4f995369/l/d9c7d33257ae406caf8d94277ff6d247.fbda7904cd1f0ac9583e04029a138487
ERROR: Found lingering reference file hdfs://master:8020/hbase/LogTable/f41ff2fae25d1dab3f16306f4f995369/l/b4f4b4ba52f041d5b9ee03318cac7fb7.fbda7904cd1f0ac9583e04029a138487
ERROR: Found lingering reference file hdfs://master:8020/hbase/LogTable/f41ff2fae25d1dab3f16306f4f995369/l/ee7dd42b15fe4622882ec6a7a773e01f.fbda7904cd1f0ac9583e04029a138487

当我尝试hbase hbck -repair时,由于过渡区域的原因,它无限循环:

INFO util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {NAME => 'LogTable'....}

我不知道如何解决这个问题,有人能帮忙吗?

感谢

试试这个:

hbase org.apache.hadoop.hbase.util.Merge <br/>

用法:

bin/hbase merge [table-name] region-1 region-2 

这看起来像是一个失败的区域分割,请参阅[HBASE-8052](https://issues.apache.org/jira/browse/HBASE-8502)了解更多详细信息。

这个错误留下了对已在HDFS中移动的父区域的引用。要修复此问题,只需删除HBCK输出中列出的参考文件,例如hadoop fs -rm hdfs://master:8020/hbase/LogTable/f41ff2fae25d1dab3f16306f4f995369/l/d9c7d33257ae406caf8d94277ff6d247.fbda7904cd1f0ac9583e04029a138487

一旦坏的引用消失,就应该自动分配区域。根据我的经验,你可能必须在shell中完成任务,尽管只需要一两分钟就可以重新分配该区域。然后再次运行hbase hbck -fix以确认没有其他不一致。

最新更新