您的位置:首页 > 运维架构

Hadoop集群配置问题

2012-03-24 06:31 162 查看
      师兄给十二台服务器搭建了hadoop平台,10.*.*.33 - 10.*.*.44, 其中33为namenode, 作为master,其他11台都是slaves。

      所有的配置,包括hadoop-env.sh,  hdfs-site.xml,  mapred-site.xml,  masters,  slaves,  core-site.xml都没有问题,可是进入bin,./start-all.sh之后,mapreduce部分是运行正常的,即通过浏览器http://10.*.*.33:50030/jobtracker.jsp是成功的,可是50070却失败(dfs部分没有成功,http://10.*.*.33:50070/dfshealth.jsp访问失败)。

      找到logs目录下的hadoop-***-namenode-***-33.log,里面显示出错,我一共遇到了两个错误,我一直改来改去,十二台机器一起改,耗了我一个通宵,最后还是除掉了问题,算是没有白花力气,总结问题如下:

       1. 在hdfs-site.xml里

          <name>dfs.name.dir</name>

          <value>/home/cadal/data/hadoop/cluster/name</value>

          为namenode配置的路径,一定要保证/home/cadal/data/hadoop文件夹下的所有文件的用户和组别都不能是root!比如我的用户名是cadal,组别是cadal,就要用命令改变hadoop文件夹内所有子文件夹都是cadal/cadal:

sudo chown -R cadal hadoop
sudo chgrp -R cadal hadoop


        2. 以上这步是为了在/bin下面做./hadoop namenode -format,可以尝试一下,如果在这里命令前面加sudo是不允许的,这应该就是为什么/home/cadal/data/hadoop不能是root组别和root用户的原因。

            继续说,在/bin下,每次./start-all.sh或者.start-dfs.sh和stop操作的时候,都要做./hadoop namenode -format,而往往data format会失败,记住,如果没有执行成功的时候,一定要去/home/cadal/data/hadoop/cluster/name下,执行

sudo rm -rf name
把已有name删除,再回到/bin下执行

./hadoop namenode -format


换句话说,也许你没有看到./hadoop namenode -format执行失败的提示(没有出现successfully这个词),http://10.*.*.33:50070/dfshealth.jsp访问依然失败,你就会去/logs的

hadoop-***-namenode-***-33.log查到

java.io.IOException: NameNode is not formatted.


或者别的类似的错误,比如我在更改root/root之前,一直遇到的

Directory /home/cadal/data/hadoop/cluster/name is in an inconsistant state: storage directory does not exist or is not accessible.


归根到底原因都是./hadoop namenode -format执行失败,为什么失败?

a. /home/cadal/data/hadoop文件夹下的文件的用户和组别是root

b. 执行前没有去删除/home/cadal/data/hadoop/cluster/name
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: