现在的位置: 首页 > 综合 > 正文

hadoop 报错org.apache.hadoop.mapred.ReduceTask: java.net.ConnectException: Connection refused

2013年11月11日 ⁄ 综合 ⁄ 共 871字 ⁄ 字号 评论关闭

2012-02-03 10:41:19,780 WARN
org.apache.hadoop.mapred.ReduceTask:
attempt_201201271626_5282_r_000000_0
copy
failed: attempt_201201271626_5282_m_000007_2
from ubuntu11

2012-02-03 10:41:19,954 WARN
org.apache.hadoop.mapred.ReduceTask:
java.net.ConnectException: Connection refused


主要就是  /etc/hosts 中配置的IP 别名 和hostname 不一致造成的网上有人分析了
经过对job history进行分析,并跟踪到task失败的任务的节点,查看syslog,发现原因如下:
1.对于运行在A节点上的map任务,运行完毕后,将运行结果提交给jobtracker,并将运行结果保存在节点A上.
2.对于运行在B节点上的reduce任务,从jobtracker取得任务信息(假设任务包括对节点A的map的数据).并直接从节点A提取该map的结果.
我的这一问题发生的原因在第二步.当节点B的reduce从jobtracker获得的任务中,包括map的服务器地址,而这个地址是改服务器的名字,而不是IP地址.因此,当在本地解析该服务器名的时候,无法解析出他的ip地址,导致无法从A节点,提去数据.

slave2  reduce时候需要得到slave1 map的结果   datanode间需要数据copy  slave2找salve1使用的是hostname  不是/etc/hosts 中配置的slave1,
就会找不到,  /etc/hosts ,$HADOOP_HOME/conf/masters  $HADOOP_HOME/conf/slaves  $HADOOP_HOME/conf/core-site.xml
$HADOOP_HOME/conf/mapred-site.xml 中的IP别名 要和hostname一致

抱歉!评论已关闭.