Я пытался создать кластер Hadoop; Мне удалось запустить его в псевдораспределенном режиме, и моя единственная машина с подсчетом слов Толстого Война и мир примерно через тридцать секунд.
Сейчас я пытаюсь добавить в свой кластер вторую машину; Чтобы помочь в настройке, я создал группу пользователей Hadoop с разрешениями на запуск, остановку и выполнение заданий на сервере Hadoop (хотя я оставил редактирование файлов конфигурации только для root). Я убедился, что все члены группы hadoop могут использовать ssh с помощью своих открытых ключей от главного узла к подчиненному. Я установил hadoop 1.0.0.3 с помощью dpkg. Я правильно отредактировал файлы master и slave на главном и подчиненном узлах и изменил конфигурации, чтобы они указывали на правильный NameNode и JobTracker:
В core-site.xml:
fs.default.name = hdfs: // $ МАСТЕР: 9000
В mapred-site.xml:
mapred.job.tracker = $ MASTER: 9001
где $ MASTER - имя хоста моей главной машины.
Мои NN, SNN и JobTracker запускаются правильно; однако мой подчиненный узел не может подключиться к моему главному узлу! Вот что я вижу в моем журнале DataNode:
2012-05-25 09:36:23,390 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: $MASTER/10.23.95.197:9000. Already tried 0 time(s).
2012-05-25 09:36:23,390 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: $MASTER/10.23.95.197:9000. Already tried 1 time(s).
...
...
connect to server: $MASTER/10.23.95.197:9000. Already tried 9 time(s).
2012-05-25 09:36:31,394 INFO org.apache.hadoop.ipc.RPC: Server at $MASTER/10.23.95.197:9000 not available yet, Zzzzz...
снова и снова и снова. Я вижу то же самое в журнале TaskTracker, за исключением того, что в нем указан номер порта 9001. lsof сообщает мне, что правильные процессы прослушивают оба порта. Что не так ???
Все журналы из $ MASTER можно найти на http://pastebin.com/ZzyKBQVJ
Спасибо; пожалуйста, дайте мне знать, если у вас есть вопросы.
Эта проблема обычно возникает не из-за проблемы в конфигурации Hadoop, а чаще из-за сетевой конфигурации кластера; в моем случае это было вызвано Эта проблема. Если вы наблюдаете такое поведение, проверьте свою маршрутизацию, /etc/hosts
и т.д., прежде чем искать в файлах Hadoop.
Я столкнулся с аналогичной проблемой при настройке кластера из 5 узлов в Rackspace. Я дважды проверил свой /etc/hosts
файл. На самом деле проблема заключалась в межсетевых экранах. Узлы данных обмениваются данными с мастером через порт 9000
. Вам нужно будет открыть этот порт для связи. Вам также нужно будет открыть порт 50010
на узлах данных, чтобы мастер мог взаимодействовать для управления трекерами задач.
Кроме того, главный узел должен иметь порт 9001
открыты также для общения в системе отслеживания вакансий.
Обновите iptables для всего этого.
На главных узлах:
iptables -I INPUT -p tcp --dport 9000 -j ACCEPT
iptables -I INPUT -p tcp --dport 9001 -j ACCEPT
service iptables save
service iptables reload
На каждом из узлов данных / трекера задач:
iptables -I INPUT -p tcp --dport 50010 -j ACCEPT
service iptables save
service iptables reload
Я также получал ту же ошибку при запуске программы уменьшения карты в кластере. иногда работа удавалась, а иногда терпела неудачу.
Все мои системы в кластере подключены локально. Я решил эту проблему, отключив брандмауэр на всех машинах кластера с помощью этой команды:
$ systemctl отключить firewalld или $ systemctl остановить firewalld
используйте sudo перед командой, если у вас нет доступа root. Я использую Fedora 20. Если вы используете старую версию Linux, проверьте, как отключить брандмауэр в этих системах.
Я надеюсь, что это поможет вам.
С уважением, Санджай Такре
Я тоже столкнулся с подобной проблемой. (Я использую ubuntu 17.0) >sudo gedit /etc/hosts
(как на ведущей, так и на ведомой машинах)
127.0.0.1 localhost
192.168.201.101 master
192.168.201.102 slave1
192.168.201.103 slave2
во-вторых, > sudo gedit /etc/hosts.allow
и добавьте запись: ALL:192.168.201.
отключенный брандмауэр > sudo ufw disable
получил это работает.