我将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不会启动。
1条答案
按热度按时间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服务,清除以下目录中的所有文件
再次格式化hdfs(
hadoop namenode -format
)