2016-11-05 42 views
2

尝试启动的Hadoop 2.7.3服务数据节点没有启动:的Datanode没有启动:不相容群ID的Hadoop

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群ID到在TMP文件夹并重新格式化的NameNode的DataNode。另外,我删除了tmp文件夹,重新格式化并重新开始。

启动它的唯一方法是每次我想再次启动时手动删除tmp foder。

回答

3

当您启动服务时,您必须每次格式化namenode。 Namenode只能格式化一次。解决方案是删除临时文件夹,然后格式化namenode并启动服务。下次每次启动服务时都不要格式化namenode bcz,这一步只能执行一次。

+0

确定。问题是我每次停止服务时都会格式化namenode。解决了。谢谢! –

+0

如果我的回答对你有帮助,你能否接受? @gonzalobd – Mahek

0

尝试使用下面的命令

hdfs namenode -format -clusterId

+0

我已经意识到我做错了什么。不管怎么说,还是要谢谢你! –

0

这并不是说你需要删除解决这一问题的tmp文件夹。 Datanode/namenode clusterId的格式都没有帮助。要解决该问题,请执行下一个操作步骤:

  1. 以普通用户身份登录。我假设你已经在你的linux中创建了一个hdfs用户,正如在第二章开始时在Arun C. Murthy的Apache Hadoop YARN'中推荐的那样。随着HDFS-site.xml中的帮助下找到您dfs.namenode.name.dirfs.checkpoint.dir,并dfs.datanode.data.dir文件夹。在我的情况下,他们都在/var/data/hadoop/hdfs文件夹中。所以,做cd /var/data/hadoop

  2. sudo rm -r ./hdfs

  3. 住在的/ var /数据/ Hadoop的,做sudo mkdir -p ./hdfs/nnsudo mkdir -p ./hdfs/snnsudo mkdir -p ./hdfs/dn

  4. 无论你在哪里,做sudo chown hdfs:hadoop /var/data/hadoop/hdfs -R

  5. hdfs用户身份登录。在我的情况下,它可以按照su - hdfs完成,因为'hdfs'也是该用户的名字。

  6. 现在,您的格式与$HADOOP_HOME/bin/hdfs namenode -format

HDFS记住,通常格式化应该只执行一次,同时设置您的Hadoop环境。
在这个时候,没有clusterId不兼容性应该是可能的,所以你可以继续使用你的HDFS。

-1

尝试寻找的DataNodeclusterId

/usr/local/hadoop/hadoop_store/hdfs/datanode/current(如CID-c9f77ebe-1f8b-4005-91cd-6abfe9443fee

,并使用

./sbin/stop-all.sh<br> 
hdfs namenode -format -clusterId CID-c9f77ebe-1f8b-4005-91cd-6abfe9443fee<br> 
./sbin/start-all.sh<br>