一、问题描述
使用命令:start-all.sh启动hadoop后,查看jps发现缺失DataNode节点
而正常的jps查看输出结果是这样的:
而DataNode节点的缺失会导致我们伪分布式搭建和完全分布式搭建过程的执行share目录下的MapReduce程序报错
二、问题分析
出现DataNode节点缺失的原因:在启动Hadoop之前,进行了多次格式化(hdfs namenode -format),导致DataNode的ID发生了变化,在此启动集群的时候DataNode和NameNode的ID不一样。
三、 解决方法
解决DataNode节点缺失问题,我们 删除所有的DataNode资料解决这个问题,然后再启动集群
删除 所有DataNode资料 ,再启动集群。
首先先关闭集群:stop-all.sh
⑴经测试可删除hadoop目录下所有VERSION文件,再次格式化namenode解决。方法如下:
①搜索所有VERSION文件的路径,命令: find / -name "VERSION"
②删除hadoop目录下所有VERSION文件,命令:rm + [文件路径] (记得敲yes)
③接着查找是否还有VERSION文件,命令:find / -name "VERSION"
④重新格式化
关于dfs路径问题:
在Xftp,Xshell,finalshell等服务器中找到你的hadoop文件中的tmp即可知道自己的dfs路径
⑤最后启动hadoop,并检查jps
start-all.sh
jps
运行结果:
这样就,解决了缺失DataNode节点的问题。