AWS上的Hadoop提供“java.net.ConnectException Connect denied”

问题描述 投票:0回答:1

我几天前在AWS上设置了Hadoop,并运行了一个wordcount测试。但是这项任务在40分钟内没有取得任何进展。包括上传的任务纱线在内的任何任务也不起作用。我有1个Namenode(主)和2个Datanode(从属)。

我查找日志文件,首先是resourcemanager的日志显示:

WARN org.apache.hadoop.ipc.Client: Failed to connect to server: Slave2/172.31.25.60:38729:   And Failed to connect to server: Slave1/balabalablabla

我还注意到日志中的这个错误:

java.net.ConnectException: Connection refused 

然后我下载任务所在的Datanode日志,读完日志之后我猜Datanode2已完成任务但当时无法链接到Namenode。

这是日志文件:yarn-ubuntu-resourcemanager-ambari.master.com:https://github.com/MasterMiror/Hadoop/blob/master/yarn-ubuntu-resourcemanager-ambari.master.com.log(14.6mb只是忽略日志的另一部分我忘了清理它,阅读最新的部分是好的)

Datanode2的日志(运行wordcount任务):mapreducetask's log(也许您认为每个目录中应该有3个文件,但其中3个文件是0 kb,所以它们没有上传到github)

这是我的配置文件

HDFS-site.xml中:

<configuration>
<property>
  <name>dfs.namenode.secondary.http-address</name>
  <value>Master:50090</value>
 </property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/home/ubuntu/hadoopdata/namenode</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>/home/ubuntu/hadoopdata/datanode</value>
</property>
</configuration>

核心-site.xml中:

<configuration>
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://Master/</value>
</property>
</configuration>
</configuration>

纱的site.xml:

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

</configuration>

mapred-site.xml中:

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
amazon-web-services hadoop amazon-ec2 hdfs yarn
1个回答
0
投票

这应该很容易修复。当HADOOP进程可以在HDFS中创建新文件但文件长度为0时,这通常意味着进程可以与NameNode(创建文件)进行通信,但是当HDFS协议将进程重定向到DataNode(存储时)数据)它失败了。

在AWS中,这通常意味着您的安全组正在阻止Master < - > Slave和Slave < - > Slave通信。创建新的安全组,为源CIDR为VPC专用网络(类似10.0.0.0/16)的所有协议启用所有端口,并将此安全组分配给集群中的每个节点。此安全组将允许每个节点相互通信。确保在连接到同一群集的其他安全组中没有任何DENY规则阻止节点< - >节点通信。

将Hadoop设置为小型集群非常容易。坚持下去,直到你成功。此过程将帮助您了解所有部件如何组合在一起,最重要的是,您将更加熟悉Hadoop配置文件。但是,我建议首先从单个节点集群开始,然后创建一个真正的集群作为下一步。

© www.soinside.com 2019 - 2024. All rights reserved.