启动Hadoop后 没有DataNode进程 的解决方法
日期: 2020-12-22 分类: 个人收藏 526次阅读
搭建完全分布式模式后,启动Hadoop发现没有DataNode进程。下面来说说怎样解决这个问题。
一、 问题描述
在从节点(Slave)执行命令jps
后,发现没有运行DataNode。
二、 问题分析
在启动Hadoop之前,进行了多次格式化,导致DataNode的ID发生了变化。
三、 解决方法
我们可以从 删除所有的DataNode资料 ,或者让 NameNode与DataNode的ID一致 ,这两个方向去解决这个问题。
3.1 方法一
删除 所有DataNode资料 ,再启动集群。
打开集群中运行DataNode进程的机子,找到VERSION
文件(该文件的路径是自己之前搭建环境时所配置的,根据自己的配置去查找),如下图所示
下图是在Xshell连上虚拟机后,通过Xftp的图形界面去找文件;当然也可以通过命令去查找文件。
将VERSION
文件删掉(要将 集群中每个 运行DataNode进程主机的VERSION文件都删掉)
接着,重新格式化
hadoop namenode -format
再重启集群,执行jps
命令查看
3.2 方法二
把DataNode的ID改为NameNode的ID。
上面3.1是通过Xftp查找文件的,这里演示下通过命令去查找文件。如果习惯通过图形界面查找文件的话,也可以使用Xftp查找。
首先,打开自己的hadoop目录,找到 dfs 目录(根据自己的配置找),在dfs目录下面有一个 data 目录和一个 name 目录
接着进入name目录,查看到有一个名为current的目录,如下图所示
再进入current目录,里面会有一个VERSION
文件,执行命令打开它(gedit这个位置可以用 vi 或者 vim 代替)
gedit VERSION
打开后,把这个ID复制下来
退回 dfs 目录,打开该目录中的 data 目录下的 current 文件,如下图所示
执行命令打开 VERSION 文件(这个是data目录下的VERSION文件,别搞错了)
gedit VERSION
把上面在name目录下的 VERSION 文件中,复制的ID粘贴到这里。输入以下命令使之生效
source VERSION
重新格式化
hadoop namenode -format
再重启就可以解决这个问题了。
如果文章对你有帮助,请点个赞,留给评论支持一下😊,若有疑问可以私信留言😉。如果能给个三连(点赞、收藏、关注 )就最好啦😁。
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
精华推荐