天天看點

hbase 2.x 永久 RIT 的解決方法

hbase環境

hbase-2.3.3

問題描述

assignment.AssignmentManager: STUCK Region-In-Transition state=OPENING, location=datanode,16902,1616836706021, table=table_name, region=fb06a2******

解決方法一

使用hbck2重新assigns

HBASE_CLASSPATH_PREFIX=./hbase-hbck2-1.1.0-SNAPSHOT.jar ./bin/hbase org.apache.hbase.HBCK2 assigns -o fb06a26bb294cf8a9f6b6f499d6b1922
           

通常情況下,此種方法會重新配置設定region,解決rit。

解決方法二

由于上述方法沒有解決問題,而且出現rit的region隻有一個,是以采用删除該region資料的方式,解決rit問題,具體執行流程如下:

删除meta表中該region的資料

擷取所有meta中的region資訊

hbase shell << EOF
scan 'hbase:meta'
EOF
           

定位到出現rit的region資訊

hbase 2.x 永久 RIT 的解決方法

通過hbase shell查詢該資訊,确認無誤後删除:

hbase 2.x 永久 RIT 的解決方法
停掉hbase,進入bin目錄執行./stop_hbase.sh

删除hdfs中該region的資料,

hadoop fs -rm -R /hbase/data/default/table_name/fb06a26bb294cf8a9f6b6f499d6b1922

删除hdfs中MasterData的資料(删除前先備份,防止意外情況發生時可以恢複)

hadoop fs -get /hbase/MasterData

hadoop fs -rm -R /hbase/MasterData

啟動hbase,進入bin目錄執行./start_hbase.sh

總結

  1. 首先删除meta表資料。
  2. 停掉hbase。
  3. 删除hdfs中region和master表資訊。
  4. 啟動hbase。