尝试启动hadoop 2.7.3服务datanode无法启动:
java.io.IOException: Incompatible clusterIDs in /opt/hadoop/tmp/dfs/data: namenode clusterID = CID-4808098e-de31-469d-9761-9a4558fdaf70; datanode clusterID = CID-492135f3-fc08-46f1-a574-878855ae865e
我已将namenode clusterId复制到tmp文件夹中的datanode并重新格式化namenode。另外,我删除了tmp文件夹,重新格式化并重新开始。
启动它的唯一方法是每次我想重新开始时手动删除tmp foder。
答案 0 :(得分:4)
每次启动服务时,您必须格式化namenode。 Namenode应该只格式化一次。解决方案是删除临时文件夹,然后格式化namenode并启动服务。下次无论何时启动服务,都不要格式化namenode bcz,此步骤必须只执行一次。
答案 1 :(得分:0)
尝试使用以下命令
hdfs namenode -format -clusterId
答案 2 :(得分:0)
要解决此问题,您需要删除tmp
文件夹。 datanode / namenode clusterId的格式化都没有帮助。要解决此问题,请按照下一步操作进行操作:
以普通用户身份登录。我假设你已经在你的linux中创建了一个 hdfs 用户,正如 Arun C. Murthy' Apache Hadoop YARN' 所述。第二章的开头。在 hdfs-site.xml 的帮助下,找到 dfs.namenode.name.dir , fs.checkpoint.dir 和 dfs.datanode.data.dir 文件夹。就我而言,它们都在 / var / data / hadoop / hdfs 文件夹中。那么,做cd /var/data/hadoop
执行sudo rm -r ./hdfs
保持 / var / data / hadoop ,执行sudo mkdir -p ./hdfs/nn
,sudo mkdir -p ./hdfs/snn
,sudo mkdir -p ./hdfs/dn
无论身在何处,都可以sudo chown hdfs:hadoop /var/data/hadoop/hdfs -R
以 hdfs 用户身份登录。就我而言,它可以su - hdfs
完成,因为' hdfs'也是该用户的名称。
现在,使用$HADOOP_HOME/bin/hdfs namenode -format
请记住,在设置Hadoop环境时,通常只应执行一次格式化。
此时,不应该存在clusterId不兼容性,因此您可以继续使用HDFS。
答案 3 :(得分:0)
或者您可以删除data和namenode文件夹下的所有内容,然后重新启动群集,新的ID将分配给data和namenode
答案 4 :(得分:-2)
尝试在
中找到clusterId
的{{1}}
DataNode
(例如/usr/local/hadoop/hadoop_store/hdfs/datanode/current
)
并使用
CID-c9f77ebe-1f8b-4005-91cd-6abfe9443fee