Я установил распределенную среду Hadoop в VirtualBox: 4 виртуальные установки Ubuntu 11.10, один из которых действует как master node, а остальные три - в качестве подчиненных. Я выполнил этот учебник, чтобы запустить версию single- node, а затем преобразован в полностью распределенную версию. Он работал отлично, когда я работал 11.04; однако, когда я обновился до 11.10, он сломался. Теперь все журналы моих подчиненных операторов показывают следующее сообщение об ошибке, повторяющееся объявление tause:
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).
И так далее. Я нашел другие экземпляры этого сообщения об ошибке в Интернете (и qaru.site/info/246302/...), но ни одно из этих решений не сработало (попробовал изменить core-site.xml и Записи mapred-site.xml должны быть IP-адресом, а не именем хоста, проверено в четыре раза /etc/hosts
на всех ведомых устройствах и master, мастер может SSH без пароля на все подчиненные устройства). Я даже попробовал возвратить каждого подчиненного обратно к одиночной настройке node, и все они будут работать нормально в этом случае (в этой заметке мастер всегда отлично работает как Datanode, так и Namenode).
Единственный признак, который я нашел, который, кажется, дает преимущество, заключается в том, что из любого из ведомых, когда я пытаюсь выполнить telnet 192.168.1.10 54310
, я получаю Connection refused
, предполагая, что есть некоторый запрет доступа к правилам (который должен иметь вступил в силу, когда я обновился до 11.10).
Однако мой /etc/hosts.allow
не изменился. Я попробовал правило ALL: 192.168.1.
, но это не изменило поведение.
О да, и netstat
на главном экране четко отображаются TCP-порты 54310 и 54311.
У кого-нибудь есть предложения, чтобы заставить подчиненные Datanodes распознавать Namenode?
РЕДАКТИРОВАТЬ # 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-адресами, но я действительно не уверен, что это такое. Мысли?