尝试启动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。
5条答案
按热度按时间vptzau2j1#
尝试使用下面的命令
hdfs namenode -format -clusterId
f4t66c6m2#
这不是问题所在
tmp
解决此问题需要删除的文件夹。datanode/namenode clusterid的格式都没有帮助。要解决此问题,请执行以下操作序列:以普通用户身份登录。我假设您已经在linux中创建了anhdfs用户,正如arunc在书中推荐的那样。murthy在第二章的开头写了“apache hadoopYarn”。在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环境时,通常只能执行一次格式化。此时,集群不兼容是不可能的,所以您可以继续使用hdfs。
ryevplcw3#
或者您可以删除data和namenode文件夹下的所有内容,然后重新启动集群,新的id将分配给data和namenode
pb3skfrl4#
每次启动服务时都必须格式化namenode。namenode只能格式化一次。解决方案是删除temp文件夹,然后格式化namenode并启动服务。下次启动服务时,不要格式化namenode bcz,此步骤只能执行一次。
f2uvfpb95#
试着找到
clusterId
的DataNode
在/usr/local/hadoop/hadoop_store/hdfs/datanode/current
(例如CID-c9f77ebe-1f8b-4005-91cd-6abfe9443fee
)使用