首页 > 解决方案 > hadoop 错误:找不到与图像文件对应的 MD5 文件

问题描述

有一个旧hadoop系统(多年未使用),尝试重新启动集群(1 个主,2 个从)时,全部打开Linux,出现错误,在namenode.

错误输出:

2021-03-18 20:18:28,628 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join
java.io.IOException: Failed to load image from FSImageFile(file=/home/xxx/tmp/hadoop/name/current/fsimage_0000000000000480607, cpktTxId=0000000000000480607)
        at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:651)
        at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:264)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:627)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:469)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:403)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:437)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:609)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:594)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1169)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1235)
Caused by: java.io.IOException: No MD5 file found corresponding to image file /home/xxx/tmp/hadoop/name/current/fsimage_0000000000000480607
        at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:736)
        at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:632)
        ... 9 more
2021-03-18 20:18:28,631 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1
2021-03-18 20:18:28,633 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG: 

更多信息:

我试过的:


问题:

标签: javahadoophdfs

解决方案


应该有一个文件名为:

/home/xxx/tmp/hadoop/name/current/fsimage_0000000000000480607.md5

在与图像文件相同的位置。它将具有如下所示的内容:

177e5f4ed0b7f43eb9e274903e069da4 *fsimage_0000000000000014367

只需获取 fsimage 文件的 md5 和:

md5sum fsimage_0000000000000480607.md5

然后创建一个新的 md5 文件,如下所示:

xxxxxx *fsimage_0000000000000480607.md5

其中 xxxxxx 是来自 md5 命令的 md5sum。


推荐阅读