У меня есть 3 экземпляра узла -
master, slave1 and slave2
SSHing между этими узлами хорошо работает.
Вот процессы, который запускается на каждом узле, когда я говорю ./sbin/start-dfs.sh
ведущее устройство:
SecondaryNameNode
Jps
NameNode
DataNode
slave1:
Jps
DataNode
slave2:
Jps
DataNode
Но когда я пытаюсь получить доступ к hdfs от ведомых узлов, я получаю a connection timed out
.
Также, когда я проверяю hdfs dfsadmin -report
, Я только вижу один узел данных (на 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/slaves на ведущем устройстве
localhost
slave1
slave2
Короче говоря, узлы данных на ведомых устройствах не могут соединиться с hdfs.
Что я делаю неправильно?
Если вы не можете подключиться по telnet к порту 9000 на мастере из ведомых устройств (и ошибка заключается в таймане соединения), то, скорее всего, это проблема с брандмауэром.
Проверьте, что ec2 экземпляры находятся в одной группе безопасности ec2, и что нет активных правил брандмауэра iptables, блокирующих соединения (вы можете проверить это, запустив iptables -vnxL).
.