一般情况下,出现这个问题的原因是namenode和datanode的clusterID不一致。namenode每次格式化时,会更新clusterID,但是datanode只会在首次格式化时确定,因此就造成不一致现象。
打开$HADOOP_HOME/etc/hadoop/hdfs-site.xml里配置的datanode和namenode对应的目录,分别打开current文件夹里的VERSION,可以看到clusterID。
修改datanode里VERSION文件的clusterID与namenode的clusterID一致,重新执行start-dfs.sh
,再执行jps
命令可以看到datanode已正常启动。