备NameNode节点长时间未启动,导致启动失败
问题
长时间没有启动备NameNode,edits文件由于老化策略被自动清理后,重新启动NameNode时找不到所需的edits文件,从而报错。
There appears to be a gap in the edit log. We expected txid XXX, but got txid XXX.
解决方法
- 参考修改集群服务配置参数,进入HDFS“全部配置”页面,搜索并查看“dfs.namenode.name.dir”参数值获取NameNode数据目录,例如获取到数据目录为“/srv/BigData/namenode/current”。
- 在HDFS服务页面选择“实例”页签,查看并记录主备NameNode节点的业务IP地址。
- 以root用户登录发生故障的备NameNode节点,将1获取的数据目录中的fsimage文件进行备份。例如备份到“/srv/BigData/namenode/current.bak”路径下。
mv /srv/BigData/namenode/current/ /srv/BigData/namenode/current.bak
- 以root用户登录主NameNode节点,执行如下命令复制fsimage文件到备NameNode节点。
scp -rp /srv/BigData/namenode/current/ {备NameNode节点IP}:/srv/BigData/namenode/
chown omm:wheel /srv/BigData/namenode/current -R
- 重启备NameNode,观察是否重启成功。如果失败请联系技术支持进行处理。