hadoop多节点集群数据节点工作不正常

lbsnaicq  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(385)

我将hadoop部署为一个多节点集群(分布式模式)。但是每个数据节点都有不同的集群id。
在slave1上,

java.io.IOException: Incompatible clusterIDs in /home/pushuser1/hadoop/tmp/dfs/data: namenode clusterID = CID-c72a7d30-ec64-4e4f-9a80-e6f9b6b1d78c; datanode clusterID = CID-2ecca585-6672-476e-9931-4cfef9946c3b

在slave2上,

java.io.IOException: Incompatible clusterIDs in /home/pushuser1/hadoop/tmp/dfs/data: namenode clusterID = CID-c72a7d30-ec64-4e4f-9a80-e6f9b6b1d78c; datanode clusterID = CID-e24b0548-2d8d-4aa4-9b8c-a336193c006e

我也遵循这个链接datanode没有正确启动,但我不知道我应该选择哪个集群id。如果我选择了任何一个,那么数据节点将在该机器上启动,而不是在另一个机器上启动。而且当我使用basic命令格式化namenode(hadoop namenode-format)时,每个从节点上的datanode都会启动,但是主计算机上的namenode不会启动。

eufgjt7s

eufgjt7s1#

datanodes和namenodes的clusterid应该匹配,这样只有datanodes才能有效地与namenode通信。如果您使用namenode格式,那么将为namenodes分配新的clusterid,那么datanodes中的clusterid将不匹配。
你可以找到一个 VERSION 包含clusterid的/home/pushuser1/hadoop/tmp/dfs/data/current/(datanode目录)以及namenode目录(/home/pushuser1/hadoop/tmp/dfs/name/current/基于为dfs.namenode.name.dir指定的值)中的文件。
如果您已准备好格式化hdfs namenode,请停止所有hdfs服务,清除以下目录中的所有文件

rm -rf /home/pushuser1/hadoop/tmp/dfs/data/*  (Need to execute on all data nodes)
rm -rf /home/pushuser1/hadoop/tmp/dfs/name/*

再次格式化hdfs( hadoop namenode -format )

相关问题