【发布时间】:2012-02-10 23:15:24
【问题描述】:
我在 VirtualBox 中建立了一个分布式 Hadoop 环境:4 个虚拟 Ubuntu 11.10 安装,一个作为主节点,另外三个作为从节点。我按照this tutorial 启动并运行了单节点版本,然后转换为完全分布式版本。当我运行 11.04 时,它工作得很好;但是,当我升级到 11.10 时,它坏了。现在我所有奴隶的日志都显示以下错误消息,重复令人作呕:
INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.10:54310. Already tried 0 time(s).
INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.10:54310. Already tried 1 time(s).
INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.10:54310. Already tried 2 time(s).
等等。我在 Internet(和 StackOverflow)上找到了此错误消息的其他实例,但没有一个解决方案有效(尝试将 core-site.xml 和 mapred-site.xml 条目更改为 IP 地址而不是主机名; 在所有从属服务器和主服务器上进行四重检查/etc/hosts;主服务器可以无密码SSH 进入所有从服务器)。我什至尝试将每个从站恢复为单节点设置,在这种情况下它们都可以正常工作(在此说明,主站始终作为 Datanode 和 Namenode 正常工作)。
我发现的唯一一个似乎能起到引导作用的症状是,当我尝试使用telnet 192.168.1.10 54310 时,我发现任何一个奴隶都得到Connection refused,这表明有一些规则阻止访问(必须有当我升级到 11.10 时生效)。
但是,我的/etc/hosts.allow 没有改变。我尝试了规则ALL: 192.168.1.,但它并没有改变行为。
是的,master 上的netstat 清楚地显示 tcp 端口 54310 和 54311 正在侦听。
有人有什么建议可以让从属Datanodes识别Namenode吗?
编辑 #1:在使用 nmap 进行一些探索时(请参阅这篇文章中的 cmets),我认为问题出在我的 /etc/hosts 文件中。这是为主 VM 列出的内容:
127.0.0.1 localhost
127.0.1.1 master
192.168.1.10 master
192.168.1.11 slave1
192.168.1.12 slave2
192.168.1.13 slave3
对于每个从属虚拟机:
127.0.0.1 localhost
127.0.1.1 slaveX
192.168.1.10 master
192.168.1.1X slaveX
不幸的是,我不确定我改变了什么,但 NameNode 现在总是死机,除了尝试绑定一个“已经在使用”的端口 (127.0.1.1:54310)。我显然对主机名和 IP 地址做错了,但我真的不确定它是什么。想法?
【问题讨论】:
-
您正在运行防火墙吗?还有,Master的IP还是192.168.1.10吗?愚蠢的问题,但有时人们会错过明显的东西。
-
使用
sudo apt-get install gufw命令安装gufw 并检查防火墙设置。还要检查VirtualBox 中的network connection type。 -
Anyone have any suggestions to get the slave Datanodes to recognize the Namenode?- 这更像是 Ubuntu 查询而不是 Hadoop 查询?应该是how to get the slave VMs talk to the master VM。 -
@ChrisShain:这是默认的 Ubuntu 11.10 设置:没有活动防火墙,IP 仍然相同(我的路由器设置为根据 MAC 地址提供静态 IP;我的 VirtualBox 设置为提供桥接网络,因此每个 VM 的 MAC 地址也应保持相同)。提出这些问题总是很高兴:)
-
@PraveenSripati:网络连接类型为桥接;自初始设置以来,它在 11.04 下运行良好时并没有改变。它可能更像是一个 Ubuntu 查询而不是一个 Hadoop 查询,但是因为我不知道问题出在哪里,它可能是一个错误配置的 Hadoop 设置(尽管此时我认为不是)或者Ubuntu 网络配置错误(很可能)。
标签: networking ubuntu hadoop port