具有活动备用名称节点的 hadoop 集群 + 编辑日志中的间隙

hadoop cluster with active standby namenode + gap in the edit log

我们有 ambari 集群,HDP 版本 2.6.5

集群包括管理两个名称节点(一个是活动的,第二个是备用的)

和 65 台数据节点机器

我们遇到未启动的备用名称节点问题,从名称节点日志我们可以看到以下内容

2021-01-01 15:19:43,269 ERROR namenode.NameNode (NameNode.java:main(1783)) - Failed to start namenode.
java.io.IOException: There appears to be a gap in the edit log.  We expected txid 90247527115, but got txid 90247903412.
        at org.apache.hadoop.hdfs.server.namenode.MetaRecoveryContext.editLogLoaderPrompt(MetaRecoveryContext.java:94)
        at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadEditRecords(FSEditLogLoader.java:215)
        at org.apache.hadoop.hdfs.server.namenode.FSEditLogLoader.loadFSEdits(FSEditLogLoader.java:143)
        at org.apache.hadoop.hdfs.server.namenode.FSImage.loadEdits(FSImage.java:838)
        at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:693)
        at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:289)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1073)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:723)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:697)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:761)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:1001)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:985)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1710)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1778)

目前活动名称节点已启动,但备用名称节点已关闭

关于

java.io.IOException: There appears to be a gap in the edit log.  We expected txid 90247527115, but got txid 90247903412.

解决此问题的首选解决方案是什么?

造成这种情况的原因有很多,但是,检查一下article这应该会有所帮助。

按照文章中提到的确切顺序执行确切步骤。

简而言之,错误意味着namenode matadata是damaged/corrupted.