问题描述:

在集群模式下更改节点后,启动集群发现 datanode一直启动不起来。

我集群配置:有5个节点,分别为master slave1-5 。

在master以hadoop用户执行:start-all.sh

jps查看master节点启动情况:

          NameNode       

         JobTracker

         SecondaryNameNode

均已经正常启动,利用 master:50070 , Live Nodes 为0, 随进入 slave1:

ssh slave1,  输入命令 jps ,发现只有 TaskTracker 而没有DataNode。随后看日志

上网查找解决方法,最后终于解决了,解决方法如下

1. 先执行stop-all.sh暂停所有服务

2. 将所有Salve节点上的tmp(即 hdfs-site.xml 中指定的 dfs.data.dir 文件夹,DataNode存放数据块的位置) , logs 文件夹删除 , 然后重新建立tmp , logs 文件夹

3. 将所有Salve节点上的/usr/hadoop/conf下的core-site.xml删除,将master节点的core-site.xml文件拷贝过来,到各个Salve节点

    scp /usr/hadoop/conf/core-site.xml   hadoop@slave1:/usr/hadoop/conf/

4. 重新格式化: hadoop namenode -format

5. 启动:start-all.sh


:这是我碰到的情况,不见得是你遇到的问题,基本上从以下几个方面解决问题:
        1. 检查各个xml文件是否配置正确

        2. java环境变量配置是否正确

        3. ssh是否无密码互通

        4, Hadoop离开安全模式,hadoop dfsadmin -safemode leave。