启动集群时datanode进程没有启动 执行jps没有datanode的解决方法 亲测有效Incompatible clusterIDs in /export/servers/hadoop-3.1

执行jps查看进程时没有datanode进程:

启动集群时datanode进程没有启动 执行jps没有datanode的解决方法 亲测有效Incompatible clusterIDs in /export/servers/hadoop-3.1_第1张图片

另外可以检查日志文件 

cat logs/hadoop-root-datanode-hadoop101.log # 查看最新的log文件

启动集群时datanode进程没有启动 执行jps没有datanode的解决方法 亲测有效Incompatible clusterIDs in /export/servers/hadoop-3.1_第2张图片

 可以看到的是,这里给出的错误提示信息是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是与文件日志中对应的:

启动集群时datanode进程没有启动 执行jps没有datanode的解决方法 亲测有效Incompatible clusterIDs in /export/servers/hadoop-3.1_第3张图片

解决方法是:将namenode下的VERSION中的clusterID复制到datanode下的VERSION中,覆盖掉原来的clusterID,让这两个ID保持一致(注意集群中的多台机器的namenode和datanode都不一样,需要全部修改为namenode的值)

然后重启 ,随后可以看到datanode进程已经跑起来了

启动集群时datanode进程没有启动 执行jps没有datanode的解决方法 亲测有效Incompatible clusterIDs in /export/servers/hadoop-3.1_第4张图片

 

你可能感兴趣的:(分布式,hadoop,big,data,数据库,大数据)