问题描述:

当我们多次格式化文件系统(hadoop namenode -format)时,会出现DataNode无法启动。

多次启动中发现有NameNode节点,并没有DataNode节点

出现该问题的原因

在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。

解决办法:

根据日志中的路径,我这边放置在/opt/soft/hadoop313/data/dfs目录下,能看到 data和name两个文件夹。

解决方法一:(推荐)

删除DataNode的所有资料及将集群中每个datanode节点的/dfs/data/current中的VERSION删除,然后重新执行hadoop namenode -format进行格式化,重启集群,错误消失。

解决方法二:

将name/current下的VERSION中的clusterID复制到data/current下的VERSION中,覆盖掉原来的clusterID

name/current:

data/current:

重新启动:start-all.sh

jps一下,就好啦

总结:

每次运行结束 Hadoop 后,都要执行 stop-all.sh 关掉Hadoop所有服务。下次想重新运行 Hadoop,不用再格式化 NameNode ,直接启动 Hadoop 即可

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐