环境
hadoop(版本:3.3.5)集群由3个datanode(dn)节点组成,其中2个namenode(nn)节点,采用QJM(Quorum Journal Manager)方案组建高可用服务。
问题描述与处理
单位意外断电导致hdfs服务不可用,尝试重启服务:
myhadoop.sh stop
myhadoop.sh start
多次执行 jpsall 观察各服务启动情况,发现 namenode 进程启动不到一会就退出了。查看日志:
可以看到nn启动失败与节点提交的txid有关,排查各个jn节点运行日志,并没有发现什么异常信息。可以确定的是断电使某些数据没来得及提交,从而导致数据不一致,考虑使用hadoop提供的修复工具来恢复运行,尽可能地保留之前已经写入的数据。
如果之前的数据不打算要了,则可以直接在nn节点上重新格式化,快速让服务重新恢复使用:
hdfs namenode -format
数据诚可贵,我还是考虑其他方式恢复服务。