DataNode无法与Hadoop 2.2中的NameNode通信

时间:2013-11-01 14:41:29

标签: hadoop amazon-ec2

我正在设置一个hadoop 2.2群集。我已成功配置主设备和从设备。当我在主服务器上输入start-dfs.shstart-yarn.sh时,所有守护程序都会正确启动。

具体来说,在主服务器上运行以下内容:

  • DataNode
  • 节点管理器
  • NameNode
  • ResourceManager
  • SecondaryNameNode

在奴隶上,以下内容正在运行:

  • 数据管理部
  • 节点管理器

当我打开http://master-host:50070时,我发现只有1" Live Node"它指的是主服务器上的datanode。

从站上的datanode已启动,但无法告诉主站它已启动。这是我能找到的唯一错误:

来自奴隶的/logs/hadoop-hduser-datanode.log: 警告org.apache.hadoop.hdfs.server.datanode.DataNode:连接到服务器时出现问题:ec2-xx-xxx-xx-xx.compute-1.amazonaws.com/xx.xxx.xx.xxx:9001

我检查/验证过的事情:

  • 9001已开启
  • 两个节点都可以互相攻击
  • 两个节点可以相互ping通

非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

我的问题出现在hosts文件中:

slave和master上的hosts文件需要(它们是相同的_:

127.0.0.1 localhost
<master internal ip> master
<slave internal ip> slave

对于AWS,您需要使用类似于xx.xxx.xxx.xxx的内部IP(不是ec2-xx-xx-xxx.aws.com中的外部IP而不是ip-xx-xx- XXX)。

此外,core-site.xml应将hdfs的位置称为http://master:9000