hadoop 完全分布式 下 datanode无法启动解决方法 问题描述: 在集群模式下更改节点后,启动集群发现 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 注:这是我碰到的情况,不见得是你遇到的问题,基本上从以下几个方面解决问题: 2. java环境变量配置是否正确 3. ssh是否无密码互通 4, Hadoop离开安全模式,hadoop dfsadmin -safemode leave。 hdfs-site中配置的dfs.data.dir为/usr/local/hadoop/hdfs/data 用bin/hadoop start-all.sh启动Hdoop,用jps命令查看守护进程时,没有DataNode。 访问http://localhost:50070,点击页面中的Namenode logs链接,在logs页面点击hadoop-hadoop-datanode-ubuntu.log 链接, 发现在日志中有此提示:Invalid directory in dfs.data.dir: Incorrect permission for /usr/local/hadoop/hdfs/data, expected: rwxr-xr-x, while actual: rwxr-xrwx 。原因是data文件夹权限问题,执行:chmod g-w /usr/local/hadoop/hdfs/data,修改文件夹权限后,再次启动Hadoop,问题解决。 |
|