加载 FSImage 文件失败! ||怎么解决
Posted
技术标签:
【中文标题】加载 FSImage 文件失败! ||怎么解决【英文标题】:Failed to load an FSImage file! || How to solve 【发布时间】:2018-06-29 11:00:26 【问题描述】:我正在尝试使用 Jps 命令显示所有服务,但是当我点击控制台时,仅显示以下节点
3633 SecondaryNameNode
4228 Jps
3493 DataNode
4198 NodeManager
4088 ResourceManager
我正在尝试使用 start-dfs.sh 和 start-yarn.sh 启动所有服务。但之后结果也是一样的。我进入日志查找异常,我看到下面的异常。
2018-06-29 16:02:31,414 INFO org.mortbay.log: Stopped HttpServer2$SelectChannelConnectorWithSafeStartup@0.0.0.0:50070
2018-06-29 16:02:31,414 WARN org.apache.hadoop.http.HttpServer2: HttpServer Acceptor: isRunning is false. Rechecking.
2018-06-29 16:02:31,416 WARN org.apache.hadoop.http.HttpServer2: HttpServer Acceptor: isRunning is false
2018-06-29 16:02:31,423 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Stopping NameNode metrics system...
2018-06-29 16:02:31,425 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NameNode metrics system stopped.
2018-06-29 16:02:31,425 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NameNode metrics system shutdown complete.
2018-06-29 16:02:31,425 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Failed to start namenode.
java.io.IOException: Failed to load an FSImage file!
at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:673)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:281)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1006)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:736)
at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:531)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:587)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:754)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:738)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1427)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1493)
2018-06-29 16:02:31,428 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 1
2018-06-29 16:02:31,454 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1
************************************************************/
我不知道如何解决这个问题,请帮忙。我正在使用 hadoop-2.5.0-cdh5.3.2。
【问题讨论】:
你尝试格式化namenode了吗?我建议你使用'hdfs namenode -format'。看看这对你有用吗? @Abhinav 格式化 namenode 将删除 hdfs 中的所有信息,所以你有更好的选择吗? 好的,等一下。我将其发布在答案中。 【参考方案1】:按照以下步骤操作:
检查 FSImage 的路径,即 Namenode 存储 FSImage 的位置。就我而言,它是/hadoop/hdfs/namenode/current
检查最后在Namenode和Secondary Namenode中创建FSImage。查找可用的最新 FSImage。
将最新的 FSImage 从辅助 Namenode 复制到 Namenode,并具有与辅助 Namenode 中相同的权限。默认情况下,在我的情况下是hdfs:hadoop
复制后,尝试重启所有服务。
【讨论】:
【参考方案2】:格式化namenode:“hdfs namenode -format”
现在,确保 namenode 和 datanode 的 clusterID= 相同。如果 不行,换一个。 就我而言, /Path_installation_dir/hdata/dfs/name/current/VERSION /Path_installation_dir/hdata/dfs/data/current/VERSION
全部完成。启动 dfs,纱线。
【讨论】:
以上是关于加载 FSImage 文件失败! ||怎么解决的主要内容,如果未能解决你的问题,请参考以下文章
启动hadoop报ERROR org.apache.hadoop.hdfs.server.namenode.FSImage: Failed to load image from FSImageFile