hadoop 三节点集群搭建后只有一个 datanode?

1,147 阅读1分钟

自己搭建的hadoop 环境,在启动后通过jps指令查看进程发现DateNode进程消失了,不知道是什么原因

第一步:DataNode进程启动失败需要确定启动失败的原因,可以到logs目录查看对应的datanode日志信息。

如果你没有自定义配置日志输出目录,那就默认在${HADOOP_HOME}/logs目录下,通过指令或者下载datanode相关日志文件到本地查看异常信息,这里我们发现异常如下:

java.io.IOException: Incompatible clusterIDs in /opt/modules/hadoop-2.5.0/data/tmp/dfs/data: namenode clusterID = CID-2904e8aa-ff11-4ae7-a64e-c1c8269d1905; datanode clusterID = hadoop-senior.nixuange.com
	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:975)
	at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:946)
	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:745)

第二步:发现异常原因 我们通过异常信息发现发生异常的原因在于namenode 的clusterID 和datanode clusterID 不一致导致的。

namenode clusterID = CID-2904e8aa-ff11-4ae7-a64e-c1c8269d1905; datanode clusterID = hadoop-senior.nixuange.com

第三步:解决方案

1)查看hdfs-site.xml配置

找到dfs.name.dir(元数据保存目录)和dfs.data.dir(hdfs数据保存目录)的配置(hadoop3.x可能是dfs.namenode.name.dir和dfs.datanode.data.dir,在官方文档有默认值)

20200513132846402.png

2)到主节点的${dfs.name.dir}/current下查看VERSION文件,查看clusterID

2.png

到从节点的${dfs.data.dir}/current下查看VERSION文件,查看clusterID

3.png 两者确实不一样!

3)修改从节点VERSION文件的clusterID与主节点一致

4)保存退出,重启hadoop,发现DataNode进程正常启动。

stop-all.sh
start-all.sh
jps

5)访问 web ui : http://node1:9870/dfshealth.html#tab-datanode , WEB UI 出现三个datanode 5.png