Hadoop作业抛出ConnectException访问端口8021

时间:2015-01-07 17:18:40

标签: hadoop cloudera

我使用Cloudera Manager安装了CDH5。我从Cloudera Map / Reduce教程中复制并构建了word count应用程序

当我运行它时,我得到一个带有以下文本的ConnectException:

线程中的异常“main”java.net.ConnectException:调用从fatman.localdomain / 10.1.1.10到fatman.localdomain:8021连接异常失败:java.net.ConnectException:Connection refused;有关详细信息,请参阅:http://wiki.apache.org/hadoop/ConnectionRefused

我是MRv2和Yarn的新手,所以我做了很多研究,试图弄清楚这里发生了什么。我的研究表明,端口8021通常与MRv1中的JobTracker相关联,并且纱线中没有JobTracker。基于我在异常消息中的链接中发现的内容,似乎存在三个可能的问题,防火墙正在丢弃连接,存在配置错误或应该侦听该端口未运行的服务。我已经确认防火墙都已关闭。我怀疑没有服务侦听端口8021,并且不应该有一个,这是一个配置问题,但我不知道如何验证。在到达我当前状态之前,我已经安装并卸载了几个不同的CDH版本。在这个过程中可能有些东西搞砸了。

我找到了一个带有以下属性的hadoop配置文件/etc/hadoop/conf/mapred-site.xml:

<property>
    <name>mapred.job.tracker</name>
    <value>fatman.localdomain:8021</value>
</property>
<property>
    <name>mapred.job.tracker.http.address</name>
    <value>0.0.0.0:50030</value>
</property>

所以我可以从这个配置文件中获取8021端口。当我调查这个时,我发现CDH5已经定义了包含8021的MRv1端口。所以这让我相信CDH5同时支持MRv1和MRv2。当我查看Cloudera Manager时,我看到“Yarn(包含MR2)”服务正在运行,看起来它与MRv1无关。这让我相信我正在运行MRv2而不是MRv1。

所以我很难过。我怀疑单词计数应用程序不应该尝试在MRv2中使用端口8021(有人可以确认吗?)。有谁知道这里发生了什么,或者有任何关于如何弄清楚发生了什么的想法?

谢谢, 史蒂夫

更新 我已经解决了这个问题。我认为这是一个配置问题并小心地取消安装CDH,确保删除与安装相关的所有内容,然后重新安装。之后一切都很好。所以......我并没有真正弄清楚究竟出了什么问题,但我现在能够继续前进。

谢谢Chowdary先生的回答。我会投票,但我缺乏这样做的声誉。

1 个答案:

答案 0 :(得分:1)

在没有配置文件和完整错误堆栈的情况下找到问题非常典型 在MR2中,我们不再使用JobTracker,因此hadoop不会使用jobtracker配置mapred-site.xmlyarn-site.xml用于资源管理器配置并启用yarn模型资源管理和应用程序监视 因此,您必须在yarn-site.xml中定义资源管理器在哪里运行,如下所示

 <property>
    <name>yarn.resourcemanager.address</name>
    <value>host:port</value>
    <description>the host is the hostname of the ResourceManager and the port is the port on
    which the clients can talk to the Resource Manager. </description>
  </property>  

检查是否配置了SSH,如果没有配置,则Application Master无法与节点管理器通信以启动容器 您可以引用优秀网站thisthis,以便在单节点群集中轻​​松配置YARN  希望它有所帮助!