Кластер Hadoop, показывающий только 1 живую датододу

Я пытаюсь настроить 3-х узловый кластер Apache Hadoop. Я уже делал это в среде докеров, и там все работало нормально. Сейчас я пытаюсь перейти в среду открытой туманности. У меня есть 3 виртуальные машины с Ubuntu и Hadoop. Когда я запускаю hadoop с помощью./sbin/start-dfs.sh, Hadoop открывает датоды на всех подчиненных устройствах, и до этого момента все выглядит хорошо. Но если я использую "./bin/hdfs dfsadmin -report", он покажет мне только 1 живой узел данных. Проверьте следующее

Вот результат команды JPS на моем мастере:

Команда JPS на подчиненном устройстве:

Я также могу SSH все машины. Я предполагаю, что что-то не так с моим файлом хоста, потому что мои ведомые не смогли связаться с мастером. Вот мой мастер / etc / hosts.

<my_ip_1> master
<my_ip_2> slave-1
<my_ip_3> slave-2

127.0.0.1       localhost

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Я не изменил свой файл / etc / hostname, но он выглядит следующим образом. где "my_ip_1" представляет текущий IP-адрес виртуальной машины.

<my_ip_1>.cloud.<domain>.de

Далее, если я запускаю пример hadoop PI с помощью команды

./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar pi 100 10000000

Я получаю следующую ошибку в файле журнала slave-1 и slave-2. Но главный узел решает проблему PI самостоятельно.

2015-08-25 15:27:03,249 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/<my_ip_1>:54310. Already tried 10 time(s); maxRetries=45
2015-08-25 15:27:23,270 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/<my_ip_1>:54310. Already tried 11 time(s); maxRetries=45
2015-08-25 15:27:43,290 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/<my_ip_1>:54310. Already tried 12 time(s); maxRetries=45

Я уже попробовал: http://www.quora.com/The-master-node-shows-only-one-live-data-node-when-I-am-running-multi-node-cluster-in-Hadoop-What-should-I-do

1 ответ

Решение

Хорошо, я сумел выяснить проблему и нашел решение.

Проблема:

Мои подчиненные узлы не связывались с мастером. Итак, я проверил настройки брандмауэра на моих машинах (Ubuntu) с помощью следующей команды

sudo ufw status verbose

Вывод команды

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

Решение:

Итак, мои машины отклоняли любые входящие запросы. Итак, я отключил свой брандмауэр, чтобы проверить предположение.

sudo ufw disable

Перед отключением брандмауэра, telnet <my_ip_1> 54310 давал мне тайм-аут соединения. Но после отключения брандмауэра все заработало нормально. Затем я отключил брандмауэр на всех машинах и снова запустил пример PI из цикла oop. Это сработало.

Затем я включил брандмауэр на всех машинах

sudo ufw enable

И я добавил некоторые правила брандмауэра для входящих запросов с моих собственных IP-адресов, таких как

sudo ufw allow from XXX.XXX.XXX.XXX

Или, если вы хотите разрешить диапазон IP-адресов от 0 до 255, то

sudo ufw allow from XXX.XXX.XXX.0/24

Так как у меня было 3 машины. Итак, для каждой машины я добавил IP-адрес двух других машин. Все прошло нормально.

Другие вопросы по тегам