本文介绍JournalNode EditsLog异常导致NameNode启动失败的原因和解决方案。
具体报错
NameNode日志出现:FATAL org.apache.hadoop.hdfs.server.namenode.FSEditLog: Error: recoverUnfinalizedSegments failed for required journal (JournalAndStream(mgr=QJM to [xxx:8485, xxx:8485, xxx:8485], stream=null)) java.io.IOException: Timed out waiting 120000ms for a quorum of nodes to respond.
说明
NameNode日志的详细信息,请参见HDFS服务日志。
问题原因
HDFS启动时无法拉取JournalNode对应的数据,此类错误的原因一般为JournalNode异常。
解决方案
登录对应的JournalNode节点,观察JournalNode的启动状态和日志,参见HDFS的部署拓扑和HDFS服务日志。
如果JournalNode的日志无明显异常,可检查机器安全组设置,测试NameNode节点到JournalNode节点的网络联通性。
如果JournalNode异常,具体错误如下:
org.apache.hadoop.hdfs.server.namenode.FSImage: Caught exception after scanning through 0 ops from /current/edits_inprogress_0000000000000191004 while determining its valid length. Position was 1036288 java.io.IOException: Can't scan a pre-transactional edit log.
此时需要找到健康的JournalNode节点并修复其他异常的JournalNode节点,参见修复单台JournalNode异常。
文档内容是否对您有帮助?