目录
一、问题背景
二、解决思路
三、解决办法:
一、问题背景
之前启动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.
问题大体说的就是我的存放数据的目录不能添加文件,说当前目录不为空。
三、解决办法:
1. 在集群的主节点,用root身份,进入tmp 目录
用root用户登录之后
cd /tmp
之后 ll 查看tmp目录下的内容
会看见以hadoop开头的一些文件(我的这里有三个文件,可能你的和我的不太一样,但是没关系),把以hadoop开头的文件全部删除
删除的目的是因为,接下来要从新格式化hadoop集群,这些文件是之前格式化文件的时候产生的,如果不删除这些文件,直接从新格式化hadoop集群的话,之后可能会出现一些问题,有冲突的情况,所以这里要先把这些文件删除了。
2. 删除hadoop的日志文件
(1)删除hadoop存储数据的文件下的所有内容,每台主机都要分别删除
如果不知道自己hadoop存储数据的目录在哪里,可以到hadoop安装目录下的/etc/hadoop/core-site.xml 文件下查看
(2)分别在集群的每台主机,进入hadoop安装目录的logs文件,将logs下边的所有文件全部删除。
注意:这里hadoop集群的每台主机都要去删除
3. 格式化hadoop
hadoop namenode -format
4. 启动Hadoop集群
start-all.sh
5. 之后jps查看,问题就解决了
以上就是我解决问题的步骤了,希望可以帮助到你,如果有什么不清楚的地方请留言