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 shell查詢該資訊,确認無誤後删除:
停掉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
總結
- 首先删除meta表資料。
- 停掉hbase。
- 删除hdfs中region和master表資訊。
- 啟動hbase。