更新时间:2024-12-10 GMT+08:00
EditLog不连续导致NameNode启动失败
问题
在JournalNode节点有断电,数据目录磁盘占满,网络异常时,会导致JournalNode上的EditLog不连续。此时如果重启NameNode,很可能会失败。
现象
重启NameNode会失败。在NameNode运行日志中会报如下的错误:
解决方法
- 找到重启前的主NameNode,进入其数据目录(查看配置项“dfs.namenode.name.dir”可获取,例如/srv/BigData/namenode/current),得到最新的FSImage文件的序号。一般如下:
- 查看各JournalNode的数据目录(查看配置项“dfs.journalnode.edits.dir”可获取,例如/srv/BigData/journalnode/hacluster/current),查看序号从第一步获取到的序号开始的edits文件,看是否有不连续的情况(即前一个edits文件的最后一个序号和后一个edits文件的第一个序号不是连续的,如下图中的edits_0000000000013259231-0000000000013259237和后一个edits_0000000000013259239-0000000000013259246就是不连续的)。
- 如果有这种不连续的edits文件,则需要查看其它的JournalNode的数据目录或NameNode数据目录中,有没有连续的该序号相关的连续的edits文件。如果可以找到,复制一个连续的片段到该JournalNode。
- 如此把所有的不连续的edits文件全部都修复。
- 重启NameNode,观察是否成功。如还是失败,请联系技术支持。
父主题: HDFS故障排除