我在修复错误的表时有些卡住(在Hbase 0.92.1-cdh4.0.0,Hadoop 2.0.0-cdh4.0.0上)
过渡中的某个区域尚未结束:
Region State
bf2025f4bc154914b5942af4e72ea063 counter_traces,1329773878.35_766a0b4df75e4381a686fbc07db9e333,1339425291230.bf2025f4bc154914b5942af4e72ea063. state=OFFLINE, ts=Tue Jun 12 11:43:53 CEST 2012 (0s ago), server=null
当我运行sudo -u hbase hbase hbck -repair
时,我得到了:
Number of empty REGIONINFO_QUALIFIER rows in .META.: 0
ERROR: Region { meta => counter_traces,1329773878.35_766a0b4df75e4381a686fbc07db9e333,1339425291230.bf2025f4bc154914b5942af4e72ea063., hdfs => hdfs://hbase001:8020/hbase/counter_traces/bf2025f4bc154914b5942af4e72ea063, deployed => } not deployed on any region server.
Trying to fix unassigned region...
12/06/12 11:44:40 INFO util.HBaseFsckRepair: Region still in transition, waiting for it to become assigned: {NAME => 'counter_traces,1329773878.35_766a0b4df75e4381a686fbc07db9e333,1339425291230.bf2025f4bc154914b5942af4e72ea063.', STARTKEY => '1329773878.35_766a0b4df75e4381a686fbc07db9e333', ENDKEY => '1329793347.58_163865765c0a11e184ab003048f0e77e', ENCODED => bf2025f4bc154914b5942af4e72ea063,}
它只是循环。
如果我不执行-repair
,则会得到此:
Number of empty REGIONINFO_QUALIFIER rows in .META.: 0
ERROR: Region { meta => counter_traces,1329773878.35_766a0b4df75e4381a686fbc07db9e333,1339425291230.bf2025f4bc154914b5942af4e72ea063., hdfs => hdfs://hbase001:8020/hbase/counter_traces/bf2025f4bc154914b5942af4e72ea063, deployed => } not deployed on any region server.
ERROR: Region { meta => counter_traces,1329816776.95_95b5561f3c1e496598421359a19ac665,1339425297099.ee1fd808d954c9adc9ed95ec2f29d119., hdfs => hdfs://hbase001:8020/hbase/counter_traces/ee1fd808d954c9adc9ed95ec2f29d119, deployed => } not deployed on any region server.
12/06/12 11:45:59 DEBUG util.HBaseFsck: There are 134 region info entries
ERROR: There is a hole in the region chain between 1329773878.35_766a0b4df75e4381a686fbc07db9e333 and 1329793347.58_163865765c0a11e184ab003048f0e77e. You need to create a new .regioninfo and region dir in hdfs to plug the hole.
ERROR: There is a hole in the region chain between 1329816776.95_95b5561f3c1e496598421359a19ac665 and 1329847231.75_b3c50776778b43e088dd7ed865e11331. You need to create a new .regioninfo and region dir in hdfs to plug the hole.
ERROR: Found inconsistency in table counter_traces
我之前跑过-repair
几次,这很有帮助。但是这次不再。
好,所以这表示要进行手动干预来解决此问题。有人可以吗为正确的方向指出我该如何做?食谱,网页等任何都会有帮助的。
谢谢,马里奥
马里奥]
因此,区域陷入过渡的原因之一是,当跨区域服务器移动该区域时,该区域未从源区域服务器分配,但从未分配给另一个区域服务器。对我来说一直有效的一种修复方法是通过:-
从hbase shell强制进行分配assign regionName
我试图对区域进行强力分配,但这对我没有用。我尝试了以下方法,它起作用了:
如果您的HBase版本足够新,您也可以尝试hbck -repairHoles而不是-repair。这为我解决了最近的“解决漏洞”问题。
首先,您应该检查hdfs中是否存在该特定区域的文件。
我有同样的问题
就我而言,我忘记了更改从另一个集群复制的区域数据的所有者。
我有同样的问题。一个区域卡在Region still in transition, waiting for it to become assigned:
中。 -repair
选项均无效,因为所有选项均要求分配所有区域。
我不得不从hdfs中删除该区域。hdfs$ hdfs dfs -rm -r /hbase/data/default/<table>/<region>