执行jps查看进程时没有datanode进程:
另外可以检查日志文件
cat logs/hadoop-root-datanode-hadoop101.log # 查看最新的log文件
可以看到的是,这里给出的错误提示信息是dataode的cluster和namanode的clusterID不匹配:
java.io.IOException: Incompatible clusterIDs in /export/servers/hadoop-3.1.2/datas/datanode/datanodeDatas: namenode clusterID = CID-a1924214-3008-4899-9b2a-215de6964725; datanode clusterID = CID-6375bffa-0dd1-4ed0-a315-f081fa079be9
该问题出现的原因是:在第一次格式化dfs后,启动并且使用了hadoop,后来又重新执行了格式化命令hdfs namenode-format,这时namenode的clusterID会重新生成,而datanode的clusterID保持不变,所以这就出现了datanode和namenode的clusterID不匹配/不一致的情况
留意HADOOP_HOME中有datanode和namenode的两个VERSION文件
find . –name VERSION
查看这两个文件的内容,clusterID是与文件日志中对应的:
解决方法是:将namenode下的VERSION中的clusterID复制到datanode下的VERSION中,覆盖掉原来的clusterID,让这两个ID保持一致(注意集群中的多台机器的namenode和datanode都不一样,需要全部修改为namenode的值)
然后重启 ,随后可以看到datanode进程已经跑起来了