我正在尝试使用2.7.1设置一个3-workers 1主hadoop集群。启动群集时,主机运行以下守护程序:
2792 NameNode
3611 NodeManager
4362 Jps
3346 ResourceManager
2962 DataNode
3169 SecondaryNameNode
在三个工作节点中,
2163 NodeManager
2030 DataNode
2303 Jps
问题是当我查看webui时,集群无法识别3个worker。它表示1个活动数据节点,即主节点本身。请看这里:
http://master:50070/dfshealth.html#选项卡概述
问题是,假设在workers节点上运行的守护进程是什么?我试图查看日志文件,但没有发现任何有用的内容,因为它只包含与运行守护进程相关的日志,并且日志文件没有任何错误或致命错误。
我认为secondary namenode应该在worker中运行,端口不允许它通信。所以我试着在master中打开9000和9001端口
sudo iptables -I INPUT -p tcp --dport 9000 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 9001 -j ACCEPT
iptables-save
但这没什么帮助。仍然面临同样的问题。workers中的日志文件也没有帮助。
感谢你的帮助。
编辑1:
以下是我在core-site.xml中的配置:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9001</value> <!-- slave1, 2 & 3 in position of master -->
</property>
</configuration>
这是我的/etc/hosts文件:
127.0.0.1 localhost math2
127.0.1.1 math2
192.168.1.2 master
192.168.1.3 worker1
192.168.1.7 worker5
192.168.1.8 worker6
这是我在/etc/network/interfaces的配置
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
address 192.168.1.2 (3,5,6 instead of 2 for slaves)
netmask 255.255.255.0
gateway 192.168.1.1
broadcast 192.168.1.255
以下是其中一个数据节点的日志输出:
2016-02-05 17:54:12,655 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Exception in secureMain
java.net.BindException: Problem binding to [0.0.0.0:50010] java.net.BindException: Address already in use; For more details see: http://wiki.apache.org/hadoop/BindException
2条答案
按热度按时间tez616oj1#
在datanode上,当您运行jps命令时,可以看到下面的进程
19728数据节点19819 jps
在datanode上运行ps-aef | grep-i datanode时,应该显示两个进程,一个是root用户,另一个是hdfs用户
uqzxnwby2#
你把所有节点的ip地址都放进去了吗
/etc/hosts
. 这个/etc/hosts
所有节点(主节点和从节点)的文件应该包含集群中所有节点的ip地址。例如,如果我们有三个数据节点和一个主节点/etc/hosts
文件应为: