我在VirtualBox中设置了分布式Hadoop环境:4个虚拟Ubuntu 11.10安装,一个充当主节点,另外三个充当从节点。我按照this tutorial的要求启动并运行单节点版本,然后转换为完全分布式版本。我在运行11.04时工作得很好;然而,当我升级到11.10时,它打破了。现在,我所有的奴隶日志显示以下错误消息,重复广告nauseum:Hadoop Datanodes找不到NameNode
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.
,但它没有改变行为。
呵呵是的,netstat
上的主人清楚地显示tcp端口54310和54311正在监听。
任何人有任何建议让奴隶Datanodes识别Namenode?
编辑#1:在各地做一些戳使用nmap(见这个帖子上的评论),我想这个问题是在我的/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
对于每个从VM:
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地址有问题,但我真的不确定它是什么。思考?
你正在运行防火墙吗?另外,师父的IP仍然是192.168.1.10?愚蠢的问题,但有时人们会错过显而易见的东西。 – 2012-01-16 04:34:45
使用'sudo apt-get install gufw'命令安装gufw并检查防火墙设置。另请查看[VirtualBox](http://www.virtualbox.org/manual/ch06.html)中的[网络连接类型](http://www.virtualbox.org/manual/ch06.html)。 – 2012-01-16 04:43:33
'任何人都有任何建议让奴隶Datanodes识别Namenode?' - 这是一个Ubuntu查询而不是Hadoop吗?它应该是“如何让从VM与主VM交谈”。 – 2012-01-16 06:29:42