本文介绍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日志的详细信息,请参见HDFS服务日志。
问题原因
一般由于断电类机器异常或者磁盘写满,导致JournalNode写入发生异常。
解决方案
检查NameNode是否可以正常工作:
- 如果NameNode可以正常工作,建议按照如下步骤修复JournalNode:
- 对NameNode触发手动checkpoint,参见手动进行NameNode checkpoint。
- 对异常JournalNode进行单独修复,参见修复单台JournalNode异常。
- 观察HDFS Web UI的Journal Status情况,参见HDFS Web UI介绍。
- 如果此时NameNode无法启动,可参见JournalNode EditsLog异常导致NameNode启动失败进行排查解决。