Я настроил распределенную среду Hadoop в VirtualBox: 4 виртуальных установки Ubuntu 11.10, одна из которых выступает в качестве главного узла, а другие три в качестве подчиненных. Я следовал этому руководству , чтобы запустить и запустить одноузловую версию, а затем преобразовать ее в полностью распределенную версию. Это работало очень хорошо, когда я работал 11.04; однако, когда я обновился до 11.10, он сломался. Теперь все журналы моих рабов показывают следующее сообщение об ошибке, повторяющееся до тошноты:
INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.10:54310. Already tried 0 time(s).
INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.10:54310. Already tried 1 time(s).
INFO org.apache.hadoop.ipc.Client: Retrying connect to server: master/192.168.1.10:54310. Already tried 2 time(s).
И так далее. Я нашел другие экземпляры этого сообщения об ошибке в Интернете (и StackOverflow ), но ни одно из решений не сработало (попытался изменить записи core-site.xml и mapred-site.xml на IP-адрес адрес, а не имя хоста; четырёхкратная проверка /etc/hosts
на всех ведомых устройствах и ведущем устройстве; ведущее устройство может использовать SSH без пароля для всех ведомых устройств). Я даже попытался вернуть каждое ведомое устройство обратно к настройке с одним узлом, и в этом случае все они работали бы нормально (на этой ноте мастер всегда работает как Datanode и Namenode).
Единственный обнаруженный мной признак, который, похоже, дает преимущество, заключается в том, что от любого из рабов, когда я пытаюсь telnet 192.168.1.10 54310
, я получаю Connection refused
, предполагая, что есть какое-то правило, блокирующее доступ (который должен иметь вступил в силу после обновления до 11.10).
Мой /etc/hosts.allow
не изменился, однако. Я попробовал правило ALL: 192.168.1.
, но оно не изменило поведение.
О, да, и netstat
на ведущем устройстве ясно показывает, что порты TCP 54410 и 54311 прослушивают.
У кого-нибудь есть предложения, чтобы заставить рабов Датоданов распознать Наменод?
РЕДАКТИРОВАТЬ # 1 : В процессе работы с nmap (см. Комментарии к этой записи) я думаю, что проблема в моих /etc/hosts
файлах. Вот что указано для основной ВМ:
127.0.0.1 localhost
127.0.1.1 master
192.168.1.10 master
192.168.1.11 slave1
192.168.1.12 slave2
192.168.1.13 slave3
Для каждой подчиненной виртуальной машины:
127.0.0.1 localhost
127.0.1.1 slaveX
192.168.1.10 master
192.168.1.1X slaveX
К сожалению, я не уверен, что я изменил, но NameNode теперь всегда умирает, за исключением попытки привязать порт, «который уже используется» (127.0.1.1:54310). Я явно что-то не так делаю с именами хостов и IP-адресами, но я действительно не уверен, что это такое. Мысли?