1

2 つのリージョン サーバーで HBase 0.94.7 を使用しています。私たちには常に移行期にある地域があります。を実行するhbase hbckと、矛盾が見つかりました。しかし、この地域は移行期にあるため、どちらhbase hbck -repairhbase hbck -fix役に立ちません。ここからのログですhbase hbck

ERROR: Region { meta => LogTable,\x00\x00\x01\xE8\x00\x00\x01@\x07B\x02\xCF\xEF\xCE>.,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 \x00\x00\x01\xE8\x00\x00\x01@\x07B\x02\xCF\xEF\xCE>. and \x00\x00\x01\xFC\x00\x00\x01@\x08\x1E1\x0F\x07&\xCE\x11.  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'....}

この問題を解決する方法がわかりません。誰か助けてもらえますか?

ありがとう

4

2 に答える 2

0

これを試して:

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

使用法:

bin/hbase merge [table-name] region-1 region-2 
于 2013-12-24T10:01:08.570 に答える
0

これは、リージョンの分割に失敗したようです。詳細については、[HBASE-8052] ( https://issues.apache.org/jira/browse/HBASE-8502 ) を参照してください。

このバグは、HDFS で移動された親リージョンへの参照を残します。修正するには、HBCK 出力にリストされている参照ファイルを削除するだけですhadoop fs -rm hdfs://master:8020/hbase/LogTable/f41ff2fae25d1dab3f16306f4f995369/l/d9c7d33257ae406caf8d94277ff6d247.fbda7904cd1f0ac9583e04029a138487

不適切な参照がなくなると、リージョンが自動的に割り当てられるはずです。私の経験では、リージョンが再割り当てされるのに1、2分しかかかりませんが、シェルから割り当てを行う必要があるかもしれません。その後、hbase hbck -fix再度実行して、他に矛盾がないことを確認します。

于 2013-12-25T03:00:57.200 に答える