hadoop datanode起不来

原创
2017/03/17 17:46
阅读数 936

错误

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版本号不一致的错误

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部