很诡异的一个问题,为的整个conf文件中没有一个是关于master的,但是想让wordcount在java application下运行,就会出现上述错误。
网上找了一些资料说是localhost对应的是127.0.0.1,而和当前的192.168.0.42的ip不相同造成的。
因为当前这台机器在
sudo gedit /etc/hosts
中的配置是作为slave的,master机器不在身边,为想用slave机器单机执行程序。
根据hosts的配置我重新设置了hadoop/conf中的几个配置文件。
(1)core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://slave:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/program/tmp-${user.name}</value> </property> </configuration>
(2)mapred-site.xml
<configuration> <property> <name>mapred.job.tracker</name> <value>hdfs://slave:9001</value> </property> </configuration>
这样子配置以后,wordcount可以使用run as->run on hadoop 和 run as->java application都正确运行。