clusterID不一致导致datanode无法启动
问题产生:在往HDFS上传文件的时候先是报错 (There are 0 datanode(s) running and no node(s) are excluded in this operation),一看错误信息是知道datanode没有启动,但是datanode死活起不来,以下是datanode报错信息。
2021-07-31 09:50:21,308 WARN org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException: Incompatible clusterIDs in /opt/module/hadoop-2.7.2/data/tmp/dfs/data: namenode clusterID = CID-bd906f91-d364-4c95-997b-9ef93786549c; datanode clusterID = CID-98f545c0-27bd-4521-af7b-b4160c597e84
2021-07-31 09:50:21,308 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to hadoop102/192.168.9.131:9000. Exiting.
java.io.IOException: All specified directories are failed to load.
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:478)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1358)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1323)
at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:317)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:223)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:802)
at java.lang.Thread.run(Thread.java:748)
问题分析:此处namenode和datanode的clusterID不一致,那么指向的就是压根不是一个集群(同一个集群的集群ID号是一样的),所以导致启动集群的时候两个不能同时启动,修改集群ID号一致即可解决
问题解决: 方式一(推荐):找到file://${hadoop.tmp.dir}/dfs/name/current/VERSION,将此处的clusterID改为datanode clusterID即可。
#Sat Jul 31 10:03:22 CST 2021
namespaceID=976732521
clusterID=CID-bd906f91-d364-4c95-997b-9ef93786549c
cTime=0
storageType=NAME_NODE
blockpoolID=BP-679442343-192.168.9.131-1627524748524
layoutVersion=-63
方式二:删除namenode、datanode的VERSION文件(需先关闭Hadoop),重新格式化。
结果展示:
[atguigu@hadoop102 current]$ start-dfs.sh
Starting namenodes on [hadoop102]
hadoop102: starting namenode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-atguigu-namenode-hadoop102.out
hadoop102: starting datanode, logging to /opt/module/hadoop-2.7.2/logs/hadoop-atguigu-datanode-hadoop102.out
hadoop104: ssh: connect to host hadoop104 port 22: No route to host
hadoop103: ssh: connect to host hadoop103 port 22: No route to host
Starting secondary namenodes [hadoop104]
hadoop104: ssh: connect to host hadoop104 port 22: No route to host
[atguigu@hadoop102 current]$ jps
16707 Jps
16357 NameNode
16502 DataNode
|