更改了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了
重启之后。。。大功告成!