我正在将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.如果我选择任何数据节点,则在该计算机上启动但不在另一台计算机上启动.而且当我使用基本命令(hadoop namenode - format)格式化namenode时,每个从属节点上的数据节点都会启动,但主机上的namenode不会启动.
数据节点和名称节点的ClusterID应该匹配,那么只有数据节点可以有效地与namenode通信.如果使用namenode格式,将为namenodes分配新的ClusterID,则datanode中的ClusterID将不匹配.
您可以VERSION
在/ home/pushuser1/hadoop/tmp/dfs/data/current /(datanode目录)以及namenode目录中找到文件(/ home/pushuser1/hadoop/tmp/dfs/name/current /基于为包含ClusterID的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
)