Hadoop Multinode集群。数据节点无法正常工作

时间:2014-11-13 11:28:42

标签: hadoop

我将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 not starts correctly,但我不知道应该选择哪个群集ID。如果我选择任何数据节点,则在该计算机上启动但不在另一台计算机上启动。而且当我使用基本命令(hadoop namenode - format)格式化namenode时,每个从属节点上的数据节点都会启动,但主机上的namenode不会启动。

1 个答案:

答案 0 :(得分:9)

datanode和namenode的ClusterID应该匹配,那么只有datanode可以有效地与namenode通信。如果使用namenode格式,将为namenodes分配新的ClusterID,则datanode中的ClusterID不匹配。

您可以在/ home / pushuser1 / hadoop / tmp / dfs / data / current /(datanode目录)以及namenode目录(/ home / pushuser1 / hadoop / tmp / dfs)中找到VERSION个文件/ name / current /基于您为dfs.namenode.name.dir指定的值,其中包含ClusterID。

如果您已准备好格式化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