有hadoop的Live Nodes为1引起的思考

2013年5月13日,星期一

之前配置了Hadoop集群,有5个节点,一个master和四个slave,然后使用命令bin/start-all.sh开启集群,然后用命令jps查看开启了哪些些服务,看到JobTracker、NameNode、SecondaryNameNode、TaskTracker、DataNode以及Jps,这时以为一切都是顺利的,开始运行MapReduce应用程序。

刚开始开启master和slave1、slave2,在这之间应用程序运行的还不错,没有问题,然后结果也是正确的,就是当增加slave3或者slave3、slave4时,运行的效率不是很高,似乎Hadoop的优势没有体现出来。

后来,查看:50070时,发现Cluster Summary下的Live Nodes为1,弄了好半天还是1,就想当时增加节点数后应用程序运行效率没有提高是不是与此有关!然后上网查了一通,下面这个网址 里有一种解决方法,但是我试过之后还是不行。

后来我查看Live Nodes,发现开启的那个只有master节点,然后我将集群中每个节点的hadoop文件下的conf配置文件夹中的slaves文件中有关master那项注释掉,,然后重启集群,这时发现Live Nodes为0,一直都是0。那么我就猜想是不是集群中DataNode根本就没启动!

上网查资料,说是多次格式化HDFS造成的,一般的做法是:1.删除hadoop.tmp.dir中有关hadoop的所有文件 2. 第二种方法是修改每个DataNode的namespaceID(位于/hdfs/data/current/VERSION文件中)<优先>或修改NameNode的namespaceID(位于/hdfs/name/current/VERSION文件中),使其一致。但是还是不行。郁闷……

这时我看了网上说如何在集群中添加一个节点而且不用关闭集群的方法,具体是方法可以参考

TaskTracker

Jps

Could not synchronized with target

(不知道为什么图片没有上传上去,唉)

然后上网搜索”Could not synchronize with target”,有人说查看一下日志可以发现问题,然后我到logs中查看日志,

说的是找不到用户名acmer-OptiPlex-380,再上网查资料。下面两个网址都是解决此问题的方法:(hadoop),(java.net.UnknownHostException: localhost.localdomain:localhost.localdomain)。两个方法都是说问题在与于/etc/sysconfig/network中

”Could not synchronize with target”的问题。

回到master节点,然后就可以在namenode机器上运行balancer,执行负载均衡

bin/hadoop balancer

(或者:bin/start-balancer.sh)

由于我之前已经将各个slave节点的DataNode和NameNode的namespaceID改来和master节点一样了,这里就不用再做此操作了,记着这部是要做的哦!

使用命令hadoop dfsadmin –report一下,或者在:50070中,查看Live Nodes的数目,发现不再是1了,说明成功了。

最后看一下50070的Live Nodes的具体情况,可以查看节点的Used情况和Remaining情况(这里写的仓促,没有把图片贴上去,有时间换一下)。

快忘了那些不高兴的事吧!你看就连今天的阳光都如此明媚灿烂,

有hadoop的Live Nodes为1引起的思考

相关文章:

你感兴趣的文章:

标签云: