hadoop jar hadoop-mapreduce-examples-2.7.4.jar pi 10 20
算pi时报错如下
java.io.IOException: java.net.ConnectException: Call From hadoop1/192.168.160.131 to 0.0.0.0:10020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at org.apache.hadoop.mapred.ClientServiceDelegate.invoke(ClientServiceDelegate.java:344)
at org.apache.hadoop.mapred.ClientServiceDelegate.getJobStatus(ClientServiceDelegate.java:429)
at org.apache.hadoop.mapred.YARNRunner.getJobStatus(YARNRunner.java:601)
at org.apache.hadoop.mapreduce.Job$1.run(Job.java:323)
at org.apache.hadoop.mapreduce.Job$1.run(Job.java:320)
at java.security.AccessController.doPrivileged(Native Method)
报错信息提示,在访问端口 100020的时候出错,这表示DataNode 需要访问 MapReduce JobHistory Server,而默认值是: 0.0.0.0:10020 。
解决方法:
修改配置文件
找到{HADOOP_HOME}/etc/hadoop/mapred-site.xml配置文件 ,增加如下配置:
<property>
<name>mapreduce.jobhistory.address</name>
<!-- 配置实际的主机名和端口-->
<value>{namenode} :10020</value>
</property>
启动 JobHistory 服务
在namenode上执行命令
{hadoop_dir}/sbin/mr-jobhistory-daemon.sh start historyserver
之后就可以在 historyserver 的日志中,查看job的运行情况了。