快捷搜索: 王者荣耀 脱发

启动Hadoop后 没有DataNode进程 的解决方法

搭建完全分布式模式后,启动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

再重启就可以解决这个问题了。


经验分享 程序员 微信小程序 职场和发展