Hadoop中datanode启动失败

错误分析

我之前装了hadoop3.2.0,但是MapReduce使用有问题,就卸载了。重新安装了hadoop2.8.5,装完 之后重新启动发现namenode可以启动成功,但是datanode启动失败。

启动失败就要去查询日志,输入指令cd $HADOOP_HOME/logs,进入hadoop日志文件目录,可以看到后缀带.log的文件,都是日志文件。

我们是datanode启动失败,就看日志文件名中包含datanode的日志文件,即为hadoop-root-datanode-newler.log,使用cat或vim等指令查看日志文件。注意log文件按照时间先后顺序记录所有时间段的日志信息,所以需根据记录时间看最近的日志信息,查看最底部就是最新的日志信息,关键错误信息如下所示:

 WARN org.apache.hadoop.hdfs.server.common.Storage: Failed to add storage directory [DISK]file:/tmp/hadoop-root/dfs/data/
java.io.IOException: Incompatible clusterIDs in /tmp/hadoop-root/dfs/data: namenode clusterID = CID-78e204dc-04ae-40de-81be-7849270d5914; datanode clusterID = CID-dd673b5f-3483-47eb-8ffa-f9938587ee88
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:760)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadStorageDirectory(DataStorage.java:293)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadDataStorage(DataStorage.java:409)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.addStorageLocations(DataStorage.java:388)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:556)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1574)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1535)
        at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:382)
        at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:266)

主要原因是Failed to add storage directory [DISK]file:/tmp/hadoop-root/dfs/data/

产生错误的原因是:如果没有指定临时文件存放路径,则默认路径是/tmp。之前hadoop3.2.0运行产生的临时文件保存在/tmp下面,hadoop2.8.5运行产生的临时文件默认也保存在/tmp下面,存储时就和hadoop3.2.0的临时文件发生了冲突。

发生冲突的临时目录路径以[DISK]后面的路径为准。我们需要把集群上的每台机器上临时目录中和hadoop相关的临时文件删除。

解决方案

  1. 配置了环境变量,执行指令stop-all.sh,停止所有hadoop服务。

2.使用rm指令删除集群上的所有机器需要删除临时文件夹下和hadoop相关的所有文件。

3.输入指令hadoop namenode -format,hdfs文件系统重新格式化。

4.输入指令start-dfs.sh,重新启动,即可成功。

总结

遇到问题,查看错误日志,分析错误原因,不知道原因,咨询合作伙伴谷歌。

你可能感兴趣的:(Hadoop中datanode启动失败)