Я новичок в linux и hadoop, и у меня та же проблема, что и в этот вопрос. Я думаю, что понимаю, что вызывает это, но я не знаю, как решить эту проблему (не знаю, что они имеют в виду, говоря «Отредактируйте файл конфигурации сервера Hadoop, чтобы он включал адрес его сетевой карты»). В другом сообщении, на которое они ссылаются, говорится, что файлы конфигурации должны ссылаться на имя хоста, доступное извне. Я думаю, что получил это право, так как каждый файл конфигурации hadoop ссылается на «master», а файл etc / hosts перечисляет мастер по его частному IP-адресу. Как я могу это решить?
Изменить: у меня 5 узлов: master
, slavec
, slaved
, slavee
и slavef
все работает под управлением debian. Это файл hosts в master
:
127.0.0.1 master
10.0.1.201 slavec
10.0.1.202 slaved
10.0.1.203 slavee
10.0.1.204 slavef
это файл hosts в slavec
(похоже на других рабов):
10.0.1.200 master
127.0.0.1 slavec
10.0.1.202 slaved
10.0.1.203 slavee
10.0.1.204 slavef
файл мастеров в master
:
master
файл рабов в master
:
master
slavec
slaved
slavee
slavef
Мастера и подчиненные файлы в slavex
имеет только одну строку: slavex
Во-первых, это отличный учебник для начала по Hadoop: http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/
Во-вторых, анализ вашей среды показывает, что файлы / etc / hosts, "master" и "slave" настроены неправильно. Вы можете настроить один файл «hosts» и поделиться им со всеми узлами. По вашему сценарию это должно быть так:
127.0.0.1 localhost
10.0.1.200 master
10.0.1.201 slavec
10.0.1.202 slaved
10.0.1.203 slavee
10.0.1.204 slavef
В-третьих, необходимо настроить файлы "master" и "slave". только на «главном» узле. В первом файле есть только сервер, на котором будут запускаться JobTracker и NameNode, во втором файле - все серверы, на которых будут запускаться TaskTracker и DataNode.