【问题标题】:Hadoop slaves file regard IP as hostname?Hadoop从文件将IP视为主机名?
【发布时间】:2015-02-07 11:54:41
【问题描述】:

我在虚拟盒子中有一个 ubuntu 服务器虚拟机(在 Mac OSX 中)。我通过 docker 配置了一个 Hadoop 集群:1 个主节点(172.17.0.3)、2 个从节点(172.17.0.4、172.17.0.6)。在 Hadoop 主文件夹下运行“./sbin/start-dfs.sh”后,我在 datanode 机器中发现以下错误:

Datanode denied communication with namenode because hostname cannot be 
resolved (ip=172.17.0.4, hostname=172.17.0.4): DatanodeRegistration(0.0.0.0, 
datanodeUuid=4c613e35-35b8-41c1-a027-28589e007e78, infoPort=50075, 
ipcPort=50020, storageInfo=lv=-55;cid=CID-9bac5643-1f9f-4bc0-abba-
34dba4ddaff6;nsid=1748115706;c=0)

由于 docker 不支持双向名称链接,而且我的 docker 版本不允许编辑 /etc/hosts 文件,所以我使用 IP 地址来设置名称节点和从站。以下是我的奴隶文件:

172.17.0.4
172.17.0.6

在 google 和 stackoverflow 上搜索后,没有解决方案适用于我的问题。但是我猜Hadoop Namenode将172.17.0.4视为“主机名”,因此它报告“主机名无法解析”其中“主机名= 172.17.0.4”。 有什么建议吗?

【问题讨论】:

    标签: hadoop


    【解决方案1】:

    最后我得到了一个解决方案,这证明了我的假设:

    1.按照https://askubuntu.com/questions/472412/how-do-i-upgrade-docker的说明将我的 docker 升级到 1.4.1。

    2.将主从的IP=>主机名映射写入/etc/hosts

    3.在 Hadoop slaves 文件中使用主机名而不是 ip 地址。

    4.“运行./sbin/start-dfs.sh”

    5.完成!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 2011-03-12
      • 2012-05-20
      • 2017-12-19
      相关资源
      最近更新 更多