HDFS Namenode HA恢复

背景:HDFS 集群为HA 模式,但Standby NameNode 于2月份停止运行,5月27日凌晨Active NameNode也异常退出,在重启Active NameNode时失败,日志显示合并editlog 过程失败。

HDFS Namenode HA恢复_第1张图片
尝试一:将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节点上的edit log 传输到JournalNode的共享目录,但并未初始化JournalNode,edit log并未被删除。
重启Active NameNode,此时可以正常启动,会从JournalNode的共享目录拉取edit log与本地的2月份的fsiamge 进行合并。启动Standby NameNode ,也是从JournalNode的共享目录拉取edit log与本地的2月份的fsiamge 进行合并

根据整个过程来看,个人以为,应该先初始化JournalNode,然后将Active NameNode节点上的edit log 传输到JournalNode的共享目录,此后重启Active NameNode,Standby NameNode。

你可能感兴趣的:(hdfs)