java.io.IOException: java.net.ConnectException: Call From hadoop1/192.168.160.13

 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的运行情况了。



 

猜你喜欢

转载自java-doom.iteye.com/blog/2403716