我已经成功地建立了一个有6个节点的hadoop集群(master,salve<1-5>)
格式化namenode->done
启动和关闭集群->工作正常
执行“hadoop dfs-ls/”会出现以下错误->error:info ipc.client:重试连接到服务器:localhost
我尝试使用以下命令查看服务运行:
sudo netstat -plten | grep java
hduser@ubuntu:~$ sudo netstat -plten | grep java
tcp 0.0.0.0:50070 0.0.0.0:*侦听1000 93307 11384/java
tcp 0.0.0.0:44440 0.0.0.0:*侦听1000 92491 11571/java
tcp 0.0.0.0:40633 0.0.0.0:*听1000 92909 11758/java
tcp 0.0.0.0:50010 0.0.0.0:*侦听1000 93449 11571/java
tcp 0.0.0.0:50075 0.0.0.0:*侦听1000 93673 11571/java
tcp 0.0.0.0:50020 0.0.0.0:*侦听1000 93692 11571/java
tcp 0 0 127.0.0.1:40485 0.0.0.0:*侦听1000 93666 12039/java
tcp 0.0.0.0:44582 0.0.0.0:*侦听1000 93013 11852/java
tcp 0 0 10.42.43.1:54310 0.0.0.0:*侦听1000 92471 11384/java
tcp 0 0 10.42.43.1:54311 0.0.0.0:*侦听1000 93290 11852/java
tcp 0.0.0.0:50090 0.0.0.0:*侦听1000 93460 11758/java
tcp 0.0.0.0:34154 0.0.0.0:*侦听1000 92179 11384/java
tcp 0.0.0.0:50060 0.0.0.0:*侦听1000 94200 12039/java
tcp 0.0.0.0:50030 0.0.0.0:*侦听1000 93550 11852/java
它是绑定到端口54310和54311的主ip,而不是本地主机(环回)。
conf-site.xml已正确配置:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hduser/hadoop/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://master:54310</value>
</property>
</configuration>
为什么它希望localhost绑定到54310而不是我在这里配置的主机呢。谢谢你的帮助。我该如何解决这个问题??
干杯
3条答案
按热度按时间5hcedyr01#
另外,检查namenode和datanode之间的防火墙规则
jtjikinw2#
显然,在我添加新的hadoop(1.0.4)bin目录之前,有人将旧的hadoop(1.0.3)bin目录添加到path变量中。因此,每当我从cli运行“hadoop”时,它都会执行旧hadoop的二进制文件,而不是新hadoop的二进制文件。
解决方案:
删除旧版hadoop的整个bin路径
关闭集群-出口终端
登录新终端会话
启动节点
尝试
hadoop dfs -ls /
->工作正常!!!!吸取了很好的教训。bnlyeluc3#
看来很多人都遇到了这个问题。
可能不需要更改/etc/hosts,并确保可以从彼此访问master和slave,并且core-site.xml指向正确的主节点和端口号。
然后仅在主节点上运行$hadoop/bin/stop-all.sh、$hadoop/bin/start-all.sh(如果在从机上运行可能会导致问题)。使用jps检查是否所有服务都存在,如下所示。
在主节点上:4353 datanode 4640 jobtracker 4498 secondarynamenode 4788 tasktracker 4989 jps 4216 namenode
从节点上:3143 jps 2827 datanode 2960 tasktracker