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