我有3个节点实例 –
master, slave1 and slave2
这些节点之间的SSH连接工作正常。
当我说./sbin/start-dfs.sh时,这是在每个节点上启动的进程
主:
SecondaryNameNode Jps NameNode DataNode
SLAVE1:
Jps DataNode
SLAVE2:
Jps DataNode
但是当我试图从奴隶节点访问hdfs,我得到一个connection timed out 。
另外,当我检查hdfs dfsadmin -report ,我只看到一个datanode(在master的localhost上)作为hdfs的一部分。
Datanodes available: 1 (1 total, 0 dead) Live datanodes: Name: 127.0.0.1:50010 (localhost) Hostname: master Decommission Status : Normal Configured Capacity: 8309932032 (7.74 GB) DFS Used: 24576 (24 KB) Non DFS Used: 2309738496 (2.15 GB) DFS Remaining: 6000168960 (5.59 GB) DFS Used%: 0.00% DFS Remaining%: 72.20%
这是我所有三个节点上的/ etc / hosts文件映射。
127.0.0.1 localhost <ip of master> master <ip of slave1> slave1 <ip of slave2> slave2
这是我的$ HADOOP_HOME / etc / hadoop /从属文件在主
localhost slave1 slave2
简而言之,从站上的datanode无法连接到hdfs。
我究竟做错了什么?
如果你不能从主机上的远程login到主机的端口9000(并且错误是连接超时),那么这很可能是防火墙问题。
检查ec2实例是否在同一个ec2安全组中,并且没有iptables防火墙规则主动阻止连接(可以通过运行iptables -vnxL来检查)。