具体错误
hbase:meta,,1.1588230740 is NOT online; state={1588230740 state=OPEN, ......
使用 hbase 2.5.5 ,hdfs和hbase分离两台服务器。
总过程
1. 问题发现
在使用HBase的程序发出无法进行插入到HBase操作日志后检查HBase状况。发现master节点和region节点都挂了,HBase自动切换到备用master节点。关闭备用master节点,重新启动HBase集群,WEB界面发现上一次启动的节点在Dead Region中不自动清除,且Region Transition卡住了395条,看日志发现master节点一直在抛出is not online on ...,16020,1569380560106异常,确认HBase没有正常运行。
检查日志发现主节点抛出如上错误。
2. 解决过程
2.1 is not online on ...,16020,1569380560106异常
重启观察到Dead Region每次会增加,感觉应该是HMaster初始化中重启导致的状态问题。之前测试环境解决这个问题是清空zookeeper和hdfs的hbase相关信息,但是因为有数据不希望清除,考虑解决该问题。
先去hdfs节点检查hbase文件有没有损坏的情况。
hdfs fsck
输出未发现数据块损坏的情况。 搜索后确认为hbase内部问题。搜索得到hdfs的hbase路径下WALs保存regionserver节点的信息,遂考虑清空重启看看能不能解决这个问题。
hdfs dfs -mkdir /hbase/WALs20240521
hdfs dfs -mv /hbase/WALs/* /hbase/WALs20240521<