解决更改hadoop核心配置文件后会出现DataNode,或者NameNode无法启动的问题

更改了core-site.xml文件内容后。。。重启发现DataNode无法启动:

之后百度了一下网上说的一般都是这两种方法:1.将datanode与namenode的/current 下VERSION等相应文件文件清除;

2.查看DataNode的log文件说是因为DataNode与NameNode的namespaceid不一样所导致,将version里的id··    改成一样的即可!

我先试了第二种方法发现DataNode里不存在namespaceid,还以为是DataNode里的namespaceid缺少,之后对照NameNode里的id,复制到了   DataNode的version里。 重启hadoop 发现无用,又重新格式化还是没有用。。。这时去看日志,发现日志报错为org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException: Incompatible clusterIDs in /usr/software/hadoop-2.6.0-cdh5.7.1/src/dfs/data: namenode clusterID = CID-60612a30-5886-4222-bc97-ece8e3d5b9d6; datanode clusterID = CID-14425489-e594-4458-8633-aa5ac7880299,找到问题的原因是clusterID不同的问题,将DataNode的clusterID改成与DataNode的clusterID一致,重启之后,发现DataNode成功启动!

然后,我发现NameNode没启动。。。

索性又尝试第一种方法将所有文件删除后,start-all.sh然而NameNode依旧不显示,这时候去看log发现日志报错:

 There appears to be a gap in the edit log.  We expected txid 1, but got txid 58.(感觉应该是删version导致的)

原因:namenode元数据被破坏,需要修复
解决:恢复一下namenode
Hadoop namenode -recover
一路选择c,一般就OK了

重启之后。。。大功告成!

展开阅读全文

没有更多推荐了,返回首页