namenode节点无法启动的解决方案:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了namenode节点无法启动的解决方案:相关的知识,希望对你有一定的参考价值。
参考技术A 首先要检查core-site.xml和hdfs-site.xml文件是否配置好我是这么配置的:
1)配置core-site.xml(核心组件)
1.进入core-site.xml文件:
2.增加以下内容:
2)配置hdfs-site.xml(文件系统)
1.进入hdfs.site.xml文件:
2.增加以下内容:
再进行以下操作:
如果还没有出现namenode......
那就请看下下面
以下是我的解决方法:
将data目录下面的文件都删除,再对namenode初始化(不要害怕初始化,我就是应为害怕,所以进程十分的缓慢),最后重启hadoop就成功啦
然后就OK啦!!!
悄咪咪:重启真是个好东西,如果有时候改命令还没有好,就重启一下,然后就莫名其妙的好了
因磁盘爆满而导致NameNode HA无法启动
场景回顾:
测试集群节点分配:35,36是namenode且开启HA,37,38,39即作为datanode,又作为journalnode。
某时间 38节点磁盘爆满,集群中hdfs及依赖的服务全部宕掉。
之后虽然将38节点清除一部分多余数据,但集群服务仍然不正常:namenode启动的时候两个都是standby,几分钟后自动关闭;datanode正常;journal正常;zkfc正常
调查过程:
查看namenode日志,显示一直在尝试连接journal,并显示
2017-08-14 17:03:58,669 WARN client.QuorumJournalManager (QuorumCall.java:waitFor(134)) - Waited 88071 ms (timeout=90000 ms) for a response for selectInputStreams. Succeeded so far: [192.168.0.37:8485] 2017-08-14 17:03:59,670 WARN client.QuorumJournalManager (QuorumCall.java:waitFor(134)) - Waited 89072 ms (timeout=90000 ms) for a response for selectInputStreams. Succeeded so far: [192.168.0.37:8485] 2017-08-14 17:04:00,600 WARN namenode.FSEditLog (JournalSet.java:selectInputStreams(280)) - Unable to determine input streams from QJM to [192.168.0.37:8485, 192.168.0.38:8485, 192.168.0.39:8485]. Skipping. java.io.IOException: Timed out waiting 90000ms for a quorum of nodes to respond. at org.apache.hadoop.hdfs.qjournal.client.AsyncLoggerSet.waitForWriteQuorum(AsyncLoggerSet.java:137) at org.apache.hadoop.hdfs.qjournal.client.QuorumJournalManager.selectInputStreams(QuorumJournalManager.java:471) at org.apache.hadoop.hdfs.server.namenode.JournalSet.selectInputStreams(JournalSet.java:278) at org.apache.hadoop.hdfs.server.namenode.FSEditLog.selectInputStreams(FSEditLog.java:1528) at org.apache.hadoop.hdfs.server.namenode.FSEditLog.selectInputStreams(FSEditLog.java:1552) at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:652) at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:294) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1015) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:690) at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:688) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:752) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:992) at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:976) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1686) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1754)
根据这些错误信息,尝试了很多网上的方案都没有起作用。
在启动namenode的时候观察hadoop UI中的Startup Progress
发现
1. Loading edits的步骤没有显示加载edit文件直接显示了100%
2. Safe mode的awaiting reported blocks加载到98%左右就失败
以上现象,分析可能跟数据完整性有关,datanode中的数据丢失不会导致namenode启动问题。那就只剩下namenode中的元数据了。
去37,38,39节点 分别进入journal元数据目录,发现38节点的edit文件比其他俩节点少。
将37节点中的edit文件覆盖到38中,重启namenode,问题解决
以上是关于namenode节点无法启动的解决方案:的主要内容,如果未能解决你的问题,请参考以下文章
hadoop 的HDFS 的 standby namenode无法启动事故处理
错误 namenode.NameNode (NameNode.java:main(1715)) - 无法启动 namenode