很诡异的一个问题,为的整个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都正确运行。