重新格式化hadoop的namenode导致datanode无法启动的最简单解决办法

Posted 成宇佳的技术博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重新格式化hadoop的namenode导致datanode无法启动的最简单解决办法相关的知识,希望对你有一定的参考价值。

一般namenode只格式化一次,重新格式化不仅会导致之前的数据都不可用,而且datanode也会无法启动。在datanode日志中会有类似如下的报错信息:

java.io.IOException: Incompatible clusterIDs in /tmp/hadoop-root/dfs/data: namenode clusterID = CID-7f25bc20-e822-4b15-9063-4da48884cb60; datanode clusterID = CID-911d3bd8-bf2f-4cb7-8401-d470c89798e4

这是因为每次格式化namenode会生成一个新的clusterID,而datanode的clusterID还是旧的。

默认情况下
namenode的clusterID写在/tmp/hadoop-root/dfs/name/current/VERSION文件中
datanode的clusterID写在/tmp/hadoop-root/dfs/data/current/VERSION文件中

clusterID不一致导致datanode无法启动,只要把这两文件中的clusterID改一致就能正常启动了。修改namenode的clusterID或修改datanode的clusterID都行,但在集群情况下datanode的数量多,还是改namenode的clusterID比较方便。

以上是关于重新格式化hadoop的namenode导致datanode无法启动的最简单解决办法的主要内容,如果未能解决你的问题,请参考以下文章

关于Hadoop启动之后jps没有namenode节点的解决方法

在hadoop集群中重新格式化namenode后重新启动datanode

5. Hadoop集群操作

Hadoop没有启动datanodes

hadoop 多次格式化format namenode 导致节点不能启动解决

Hadoop namenode无法启动