Hadoop Datanodes找不到NameNode

Mag*_*sol 22 ubuntu port networking hadoop

我在VirtualBox中建立了一个分布式Hadoop环境:4个虚拟Ubuntu 11.10安装,一个用作主节点,另外三个用作从属节点.我按照本教程启动并运行单节点版本,然后转换为完全分布式版本.当我跑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).
Run Code Online (Sandbox Code Playgroud)

等等.我在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
Run Code Online (Sandbox Code Playgroud)

对于每个从VM:

127.0.0.1    localhost
127.0.1.1    slaveX
192.168.1.10 master
192.168.1.1X slaveX
Run Code Online (Sandbox Code Playgroud)

不幸的是,我不确定我改变了什么,但NameNode现在总是死亡,除了尝试绑定一个"已经在使用"的端口(127.0.1.1:54310).我显然对主机名和IP地址做错了,但我真的不确定它是什么.思考?

Mag*_*sol 38

我找到了!通过注释掉/etc/hosts文件的第二行(带有127.0.1.1条目的那一行),netstat显示绑定到192.168.1.10地址而不是本地地址的NameNode端口,并且从属VM找到它.Ahhhhhhhh.谜团已揭开!谢谢大家的帮助.


dev*_*evl 5

这个解决方案对我有用.即确保您在core-site.xml和mapred-site.xml中的属性中使用的名称:

<property>
   <name>fs.default.name</name>
   <value>hdfs://master:54310</value>
   <final>true</final>
 </property>
Run Code Online (Sandbox Code Playgroud)

即master在/ etc/hosts中定义为BOTH主节点和从节点上的xyz.xyz.xyz.xyz master.然后重新启动namenode并检查使用 netstat -tuplen 和查看它是否绑定到"外部"IP地址

tcp        0      xyz.xyz.xyz.xyz:54310         0.0.0.0:*                   LISTEN      102        107203     - 
Run Code Online (Sandbox Code Playgroud)

而不是本地IP 192.168.xy或127.0.xy