Hadoop集群配置问题

师兄给十二台服务器搭建了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






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值