我有 3 个节点实例 -
master, slave1 and slave2
这些节点之间的 SSH 运行正常。
以下是当我说./sbin/start-dfs.sh
掌握:
SecondaryNameNode
Jps
NameNode
DataNode
从站1:
Jps
DataNode
从站2:
Jps
DataNode
但是当我尝试从从属节点访问 hdfs 时,我得到了一个connection timed out
。
另外,当我检查时hdfs dfsadmin -report
,我只看到一个数据节点(在主服务器的本地主机上)作为 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/slaves 文件
localhost
slave1
slave2
简而言之,从属设备上的 DataNode 无法与 HDFS 连接。
我究竟做错了什么?
答案1
如果您无法从从服务器 telnet 到主服务器的端口 9000(并且错误是连接超时),那么很可能是防火墙问题。
检查 ec2 实例是否在同一个 ec2 安全组中,并且没有活动的 iptables 防火墙规则阻止连接(您可以通过运行 iptables -vnxL 来检查)。