接着上章,从节点的datanaode没有启动
错误日志:
java.io.IOException: Incompatible clusterIDs in /opt/hadoop/hadoop-2.4.1/data: namenode clusterID = CID-7f0edf57-555f-47fc-9f34-e59a28ea0c27; datanode clusterID = CID-400b6597-12b6-4623-b0cd-231925b20329
at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:477)at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:226)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:254)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:974)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:945)
at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:278)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:220)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:816)
at java.lang.Thread.run(Thread.java:662)
从日志中可以看出,原因是因为datanode的clusterID 和 namenode的clusterID 不匹配。
出现该问题的原因:在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。
修改datanode里VERSION文件的clusterID 与namenode里的一致,再重新启动,即可成功