Hadoop 集群 傻瓜式搭建手记 补充

前面搭建好之后,就应该跑一跑看看,不过由于时间关系,拖了几天,等到真正开始跑测试应用时,才发现问题N多。


首先,不知道为何 /hadoop/dfs/name/current/VERSION 文件变成了由root创建,owner也是root了,于是在启动后就发现该文件不能访问,晕,赶紧修改owner:

sudo chown fox /hadoop/dfs/name/current/VERSION

然后接着重新跑,在日志中又发现如下信息:

/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = namenode/127.0.1.1
STARTUP_MSG:   args = []
STARTUP_MSG:   version = 0.20.203.0


晕啊,怎么又跑到127.0.1.1去了捏?应该是192.168.100.101啊。

在网上找了半天无果,突然想起这个地址有些熟悉,之前改hosts文件时看见过,于是打开一看,果然有这么一行:

127.0.1.1 namenode.localdomain namenode

去掉后面的namenode,然后在下面添加如下信息:

192.168.100.101 namenode

192.168.100.102 jobtracker

192.168.100.103 datanode01

192.168.100.104 datanode02

同样的操作在其它3台机器上重复一遍。

这样namenode启动成功了,我们可以访问 http://192.168.100.101:50070/ 来看看整个系统的运行状态。这个网址可以访问也表明namenode启动成功了。

但是通过日志还是可以看到jobtracker启动失败了,有如下异常信息:

Problem binding to jobtracker/192.168.100.102:9001 : Cannot assign requested address

这个很晕啊,网络连接什么的都是很正常的,而且还发现在192.168.100.101上启动了jobtracker,这个不对啊,应该是在102上启动的。

又是一顿google,终于找到了一篇文章:http://lucene.472066.n3.nabble.com/Starting-JobTracker-Locally-but-binding-to-remote-Address-td3008238.html

里面有个大牛说了,bin/start-all.sh比较笨,不能体会我们希望在102上启动jobtracker的良好愿望,我们只能迂回处理,分别在namenode和jobtracker上执行相应的start命令。无语中……

于是就应该在192.168.100.101(namenode)上执行 bin/start-dfs.sh

在192.168.100.102(jobtracker)上执行 bin/start-mapred.sh


终于可以全部启动了,内牛满面啊。


下面就可以完整的跑一遍example了,就是在文档中(http://hadoop.apache.org/common/docs/stable/mapred_tutorial.html)提到的wordcount:


cd /hadoop
mkdir test-in
echo “hello word” > file1.txt
echo “hello hadoop” > file2.txt
bin/hadoop dfs –put test-in input
bin/hadoop jar hadoop-examples-0.20.203.0.jar wordcount input output
bin/hadoop dfs –get output result
cat result/* 

如果jobtracker没有正确启动,应该在第五行命令 就是dfs -put 上就会失败,说尝试连接192.168.100.102:9001失败。


至此,整个Hadoop集群体验配置应该算是完整了。





你可能感兴趣的:(Hadoop)