对于损坏的namenode元数据,首选的解决方案是什么

5anewei6  于 2021-07-15  发布在  Hadoop
关注(0)|答案(0)|浏览(301)

我们有hdp群集,版本 2.6.5 群集包括两个名称节点的管理(一个是活动的,另一个是备用的)
和65台数据节点机器
我们的备用名称节点没有启动,从namenode日志我们可以看到以下问题

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)

从Ambari我们可以看到,待命状态已经下降

目前,活动namenode已启动,而备用namenode已关闭,导致此问题的根本原因是namenode matadata已损坏/损坏。
所以我们有两个解决方案-a或b
(一)
在备用namenode上运行以下recover

su
hadoop namenode -recover

(二)
将活动nn置于安全模式

su hdfs 
hdfs dfsadmin -safemode enter

对活动nn执行savenamespace操作

su hdfs 
hdfs dfsadmin -saveNamespace

离开安全模式

su hdfs 
 hdfs dfsadmin -safemode leave

登录待机nn
在备用namenode上运行下面的命令以获取我们在上述步骤中保存的最新fsimage。

su  hdfs 
 hdfs namenode -bootstrapStandby -force

对于我们的问题,首选的解决方案是什么?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题