某客戶因為(wèi)數(shù)據表數(shù)量過多(duβ ≤φō),導緻HBase Master無法初始化(huπφ à)完成。根據日(rì)志(zhì)判斷為(wèi)M✘↑•★eta錯(cuò)誤。
客戶頻(pín)繁操作(zuò)HBase M&aster導緻混亂,加載失敗。
1.判斷客戶 β×€hdfs數(shù)據正常,基于Hbaseα∑™2特性,可(kě)以基于hdfs進行(xíng)數(shù)據恢複←∑
 ↔σ↕;2.停用(yòng)hbase服務;
3.備π©份或遷移hbase hdfs文(wén)件(jiàn)。例如(rú)如₹&→≥(rú)下(xià)
hdfs dfs -mv /hbase/data /hbas★<β¥e/data_1 //重命名
hdfs dfs -cp -p /hbase•$≈≈/data /hbase/data_1 //複制(zhì)一(yī)★份,客戶涉及數(shù)據200T,采用(yòn&±♥g)重命名方式
☆£∑ 4.删除zk中數(shù)據
hbase zkcli
rmr /hbase-unsecure
5.将→δ備份或遷移的(de)數(shù)據恢複。
hdfs dfs -mv /hbase/data_1€ε /hbase/data //重命名回去(qù),可(k₹ σě)以根據實際情況,僅複制(zhì)部分(fēn)數∑÷π(shù)據。
6.∑β啓動Hbase;登陸hbase Master查看(kàn)狀π♥态是(shì)否正常。
7.修複meta表≠£★
hbase hbck -j /root/hb→∏™ase-operator-tools-1β .2.0/hbase-hbck2/hbase-hbck2-1.2.0'→.jar addFsRegionsMis↔↑✘↓singInMeta 'FAULT' //>>引用(yòng)hbck2,對(duì)FA¥ULT命名空(kōng)間(jiān)的(de)表進行(xíng)修複。♣✘✔★多(duō)個(gè)命名空(kōng)♠間(jiān),建議(yì)多(duō)次執行(xíng)。
8.重啓H$Base Master;注意僅需對(duì)當前Mas₹>•♣ter主機(jī)相(xiàng)對(d•←uì)應服務重啓,自(zì)動會(huì)選擇其它主機(jī)為(w®©$≠èi)HBase Master;啓動成功後,會(huì↔₽☆ )提示大(dà)量的(de)進入RIT狀态。
&nbs←πp; 9.登陸HBase Master,查看(kàn)RIT,獲δ £ε取RIT中Rgid;複制(zhì)并保存到(dào)文(wén)件(jià"ε§n),例如(rú)0903rit。執行(xπ∑λíng)下(xià)面命令重新創建區(qū)域
hbase hbck -j /root/hba★™se-operator-tools-1.2.0/hbase-hbck2/hba≈φ→se-hbck2-1.2.0.jar assigns -i /root/0§®®903rit //這(zhè)裡(lǐ)是(shì¶₹≈)引用(yòng)的(de)文(wén)件(jiàn),¥' 可(kě)以選擇單個(gè)rit。
&nb δ→sp;10.進入hbase shell,count查∏®©看(kàn)表是(shì)否正常。
特别注意:如(rú)果沒有(yǒu)namespace;可(kě)£以在hbase shell啓動好(hǎo)後确認表正常情況下(xià≠≤♣↔),直接create_namespace即可(kě ₽")。
Hbase中Meta損壞是(shì)最常見(jiàn)的(de)問(↓αδδwèn)題,采用(yòng)此方法可(kě)以安全¥快(kuài)速的(de)恢複數(shù≥♦λ✔)據。此方法還(hái)可(kě)以用(yòng)于數(sh ¶<∏ù)據遷移。