伪分布式下hadoop的datanode无法启动

  • 问题描述:

通过jps查看服务发现,缺少datanode

  • 问题原因
    执行文件系统格式化时(即执行命令$ bin/hadoop namenode -format 后),会在namenode数据文件夹(即配置文件中dfs.name.dir在本地系统的路径)中保
存一个current/VERSION(我的路径为 usr/local/hadoop/tmp/dfs/name/current/VERSION,其中hadoop为建立虚拟机时为虚拟机系统所取的用户名)文件,
记录namespaceID,标识了所格式化的namenode的版本。如果我们频繁的格式化namenode,那么datanode中保存(即配置文件中dfs.data.dir在本地系统的路径)的
current/VERSION文件(路径为usr/local/hadoop/tmp/dfs/data/current/VERSION)只是你第一次格式化时保存的namenode的ID,因此就会造成namdenode 的 
namespaceID 与 datanode的namespaceID 不一致,从而导致namenode和 datanode的断连。
  • 解决方案

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

解决方法二:
将name/current下的VERSION中的clusterID复制到data/current下的VERSION中,覆盖掉原来的clusterID


猜你喜欢

转载自blog.csdn.net/qq_36176087/article/details/80640977
今日推荐