我刚刚在Hadoop集群中遇到以下难以调试的错误。
我有一个namenode和3个datanode。我的配置犯了一些错误,所以运行了以下内容:
namenode$ hdfs namenode -format
namenode$ $HADOOP_HOME/sbin/start-dfs.sh
但是注意到我的datanode都没有启动。所以我查看了日志并看到了:
2015-12-08 22:20:07,047 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode:块池(Datanode Uuid未分配)服务初始化失败,发送至ec2-52-34-138-55。 us-west-2.compute.amazonaws.com/172.31.9.93:9000。退出。 java.io.IOException:无法加载所有指定的目录。
经过一些谷歌搜索后,我发现有人说我的datanode上的群集ID可能与我的namenode不匹配。所以我检查了,这就是问题所在。然后我删除了我的datanode和我的namenode中的数据文件夹,再次运行以下命令:
namenode$ hdfs namenode -format
namenode$ $HADOOP_HOME/sbin/start-dfs.sh
一切都很完美。
我想知道为什么群集ID不同步,将来阻止这种情况发生的最佳方法是什么?