背景:HDFS 集群为HA 模式,但Standby NameNode 于2月份停止运行,5月27日凌晨Active NameNode也异常退出,在重启Active NameNode时失败,日志显示合并editlog 过程失败。
尝试一:将Active NameNode节点上的edit log 手工复制到Standby NameNode,重启Active NameNode,仍然出现相同错误。
尝试二:zookeeper 上清除hadoop-ha 相关信息,也无法解决问题。
尝试三:
分析两个txid: txid 2182632559 和 txid 3626089887
最后一次的fsimage_0000000002182632558 显示合并到txid 位置2182632558,所以启动Active NameNode时,会尝试从txid为2182632559的地方与fsimage进行合并,但此时JournalNode的共享目录下已经没有那些2月份的edit log,只有最近几天的,所以获取到的txid 3626089887与预期不符合,是正常的。(服务器默认保留最近两次的fsimage,启动时与最近一次fsimage进行合并。)
将Active NameNode节点上的edit log 传输到JournalNode的共享目录,并初始化JournalNode。
hdfs namenode -initializeSharedEdits
(初始化后,JournalNode的共享目录中edit log 被删除)
重启Active NameNode,此时可以正常启动,会从本地读取edit log 与同目录下的2月份的fsiamge 进行合并;但是启动Standby NameNode 失败,提示相同错误。
后来操作失误,Active NameNode恢复过程中又退出。
第二次,将Active NameNode节点