Hadoop集群启动从节点没有DataNode

目录

一、问题背景

二、解决思路

三、解决办法:


一、问题背景

之前启动hadoop集群的时候都没有问题,今天启动hadoop集群的时候,从节点的DataNode没有启动起来。

二、解决思路

遇见节点起不来的情况,可以去看看当前节点的日志文件

我进入当前从节点的hadoop安装目录的Logs文件下去查看日志,发现日志报了错误(查看了日志如果发现有很多at的情况,那就说明是有问题了,不用去管那一大长串at,我们只需要找到at之前的第一句就好了,那一句才是问题的关键)

我查看日志文件的时候,出现如下错误:

 WARN org.apache.hadoop.hdfs.server.common.Storage: Failed to add storage directory [DISK]file:/home/hadoop/software/hadooptmp/dfs/data
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /home/hadoop/software/hadooptmp/dfs/data is in an inconsistent state: Can't format the storage directory because the current directory is not empty.

Hadoop集群启动从节点没有DataNode_第1张图片

 问题大体说的就是我的存放数据的目录不能添加文件,说当前目录不为空。

三、解决办法:

1. 在集群的主节点用root身份,进入tmp 目录

用root用户登录之后

cd /tmp

之后 ll   查看tmp目录下的内容

Hadoop集群启动从节点没有DataNode_第2张图片

 会看见以hadoop开头的一些文件(我的这里有三个文件,可能你的和我的不太一样,但是没关系),把以hadoop开头的文件全部删除

删除的目的是因为,接下来要从新格式化hadoop集群,这些文件是之前格式化文件的时候产生的,如果不删除这些文件,直接从新格式化hadoop集群的话,之后可能会出现一些问题,有冲突的情况,所以这里要先把这些文件删除了。

2. 删除hadoop的日志文件

(1)删除hadoop存储数据的文件下的所有内容,每台主机都要分别删除

如果不知道自己hadoop存储数据的目录在哪里,可以到hadoop安装目录下的/etc/hadoop/core-site.xml 文件下查看

Hadoop集群启动从节点没有DataNode_第3张图片

(2)分别在集群的每台主机,进入hadoop安装目录的logs文件,将logs下边的所有文件全部删除。

Hadoop集群启动从节点没有DataNode_第4张图片

 注意:这里hadoop集群的每台主机都要去删除

3. 格式化hadoop

hadoop  namenode -format

4. 启动Hadoop集群

start-all.sh

5. 之后jps查看,问题就解决了


以上就是我解决问题的步骤了,希望可以帮助到你,如果有什么不清楚的地方请留言

你可能感兴趣的:(hadoop,hadoop)