Hadoop启动集群后使用JPS命令数据节点不显示解决方法

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

        解决方案1:打开core-site.xml文件,查看 指定hadoop运行时产生文件的存储目录 ,每次namenode初始化后的数据存在这个目录里。我的是:/home/hadoop/tmp,

Hadoop启动集群后使用JPS命令数据节点不显示解决方法_第1张图片

使用如下命令删除tmp目录下的所有文件

rm -rf  /home/hadoop/temp

然后重新格式化:hadoop namenode -format 

重新启动集群即可

注意:如果你删除tmp目录下的所有文件,也就意味你的元数据文件存储目录data也会被删除,结果就是HFDS上的所有数据都丢失了,如果只是想重启namenode,只要删除tmp下的namenode目录即可

解决方案2:

如果有数据还在,又不想清空数据,那么就用这个方案。

    既然是版本号不一致产生的问题,那么我们就单独解决版本号的问题,将你格式化之后的NameNode的VERSION文件找到,然后将里面的clusterID进行复制,再找到DataNode的VERSION文件,将里面的clusterID进行替换,保存之后重启,那么就可以正常的使用了。

         那这个version文件在哪呢,就在hadoop运行时产生文件的存储目录里,看图

你可能感兴趣的:(Hadoop)