我正在尝试配置一个3节点的apachehadoop集群。我已经在docker环境下做过了,那里一切都很好。现在,我正试图移动到开放的星云环境。我有3个vm与ubuntu和hadoop。当我使用./sbin/start-dfs.sh启动hadoop时,hadoop会打开所有从机上的数据节点,直到现在一切都正常。但是如果我使用“/bin/hdfs dfsadmin-report”,它只显示1个活动数据节点。查看以下内容
以下是对我的主机执行jps命令的结果:
从机上的jps命令:
我也可以ssh所有的机器。我的猜测是我的主机文件出了问题,因为我的从属服务器无法访问主服务器。这是我的主人。
<my_ip_1> master
<my_ip_2> slave-1
<my_ip_3> slave-2
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
我没有修改我的/etc/hostname文件,但它看起来像这样。其中“my\u ip\u 1”表示虚拟机的当前ip。
<my_ip_1>.cloud.<domain>.de
此外,如果我使用以下命令运行hadoop pi示例
./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar pi 100 10000000
在slave-1和slave-2日志文件中出现以下错误。但是主节点自己解决了pi问题。
2015-08-25 15:27:03,249 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/<my_ip_1>:54310. Already tried 10 time(s); maxRetries=45
2015-08-25 15:27:23,270 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/<my_ip_1>:54310. Already tried 11 time(s); maxRetries=45
2015-08-25 15:27:43,290 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/<my_ip_1>:54310. Already tried 12 time(s); maxRetries=45
我已经试过了:http://www.quora.com/the-master-node-shows-only-one-live-data-node-when-i-am-running-multi-node-cluster-in-hadoop-what-should-i-do
1条答案
按热度按时间hvvq6cgz1#
好的,我设法找出了问题并找到了解决办法。
问题:
我的从属节点没有与主节点通信。因此,我使用以下命令检查了我的机器(ubuntu)上的防火墙设置
命令的输出
解决方案:
所以,我的机器拒绝任何传入的请求。所以,我禁用了防火墙来验证这个假设。
在禁用防火墙之前,
telnet <my_ip_1> 54310
正在给我连接超时。但在禁用防火墙后,它工作正常。然后我禁用了所有机器上的防火墙,并再次运行hadoop的pi示例。成功了。然后我重新启用了所有机器上的防火墙
我为来自我自己ip地址的传入请求添加了一些防火墙规则,比如
或者如果您想允许ip范围在0-255之间,那么
从那以后,我有三台机器。因此,我为每台机器添加了另外两台机器的ip地址。一切都很顺利。