错误
2017-02-13 16:09:38,948 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to WaUatWeb02/132.37.2.76:8920 Incompatible clusterIDs in /wapp/uniiof/uatusers/wauathdp01/hadoop/dfs1/dn: namenode clusterID = CID-f536f980-1981-4185-87ed-73730c7bdfd2; datanode clusterID = CID-53af90f8-1108-45f6-9079-fb76e765399d
2017-02-13 16:09:38,949 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to WaUatWeb01/132.37.2.75:8920. Exiting.
java.io.IOException: Cluster IDs not matched: dn cid=CID-f536f980-1981-4185-87ed-73730c7bdfd2 but ns cid=CID-53af90f8-1108-45f6-9079-fb76e765399d; bpid=BP-737580364-132.37.2.75-1464053974305
at org.apache.hadoop.hdfs.server.datanode.DataNode.setClusterId(DataNode.java:302)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:939)
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:812)
at java.lang.Thread.run(Thread.java:744)
datanode的clusterID 和 namenode的clusterID 不匹配。
原因
在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。
解决办法
根据日志中的路径,cd /home/hadoop/tmp/dfs
能看到 data和name两个文件夹,
将name/current下的VERSION中的clusterID复制到data/current下的VERSION中,覆盖掉原来的clusterID
让两个保持一致
然后重启,启动后执行jps,查看进程
20131 SecondaryNameNode
20449 NodeManager
19776 NameNode
21123 Jps
19918 DataNode
20305 ResourceManager
注意
当我们重新格式化的时候要删除dfs.namenode.name.dir和dfs.datanode.data.dir 目录下的所有文件
如果没有删除datanode 格式化了namenode,则会引起datanode与namenode版本号不一致的错误