HBase 表修復在線方式和離線方式

1、在線修復

    1.1 使用檢查命令

$ ./bin/hbase hbckhtml

該命令可完整修復  HBase 元數據信息;存在有錯誤信息會進行輸出;apache

也能夠經過以下命令查看詳細信息:oop

$ ./bin/hbase hbck -detailsspa

   

     1.2 修復 TableInfo 缺失

    使用以下命令:server

$ ./bin/hbase hbck -fixTableOrphoneshtm

    根據內存cache或者hdfs table 目錄結構,從新生成tableinfo文件!內存

   

     1.3 修復regioninfo缺失

    根據region目錄下的hfile從新生成regioninfo文件hadoop

$ ./bin/hbase hbck -fixHdfsOrphones文檔

 

    1.4 修復region重疊

    merge重疊的region爲一個region目錄,並重新生成一個regioninfo。io

$ ./bin/hbase hbck -fixHdfsOverlaps

 

    1.5 修復region缺失

    利用缺失的rowkey範圍邊界,生成新的region目錄以及regioninfo填補這個空洞!

$ ./bin/hbase hbck -fixHdfsHoles ,

    

    1.6 修復meta表信息

    利用regioninfo信息,從新生成對應meta row填寫到meta表中,併爲其填寫默認的分配regionserver

$ ./bin/hbase hbck -fixMeta

    

    1.7 出發上線    

    把這些offline的region觸發上線,當region開始從新open上線的時候,會被從新分配到真實的RegionServer上 , 並更新meta表上對應的行信息。

hbase hbck -fixAssignment

 

2、離線修復

    離線修復的前提條件:HDFS fsck確保hbase根目錄下沒有文件損壞和丟失。若是有,應該先考慮修復/處理 corrupt 的 block 塊。

    使用以下命令:

 $ ./bin/hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair 

 

參考資料:

【1】HBase 官方文檔 . http://hbase.apache.org/book.html#hbck.in.depth 

相關文章
相關標籤/搜索