【问题标题】:DataNode can't talk to NameNode in Hadoop 2.2DataNode 无法与 Hadoop 2.2 中的 NameNode 通信
【发布时间】:2013-11-01 14:41:29
【问题描述】:

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

具体来说,在 master 上运行如下:

  • 数据节点
  • 节点管理器
  • NameNode
  • 资源管理器
  • SecondaryNameNode

在slave上,正在运行以下:

  • 数据节点
  • 节点管理器

当我打开http://master-host:50070 时,我看到只有 1 个“活动节点”,它指的是主节点上的数据节点。

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

来自从服务器上的 /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 已开通
  • 两个节点可以通过 ssh 相互连接
  • 两个节点可以互相 ping 通

非常感谢任何建议。

【问题讨论】:

    标签: hadoop amazon-ec2


    【解决方案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。

    【讨论】:

    • 是http吗?或者你的意思是 hdfs://master:9000?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 2015-03-26
    • 2023-03-24
    相关资源
    最近更新 更多