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。