Конфигурация кластера Raspberry Pi Hadoop - PullRequest
0 голосов
/ 05 декабря 2018

Недавно я пытался собрать и настроить (8-Pi) Hadoop-кластер Raspberry Pi 3 (как персональный проект на лето).Пожалуйста, потерпите меня (к сожалению, я немного новичок в Hadoop).Я использую это Hadoop версии 2.9.2 .Я думаю, что важно отметить, что сейчас я пытаюсь сделать так, чтобы один Наменод и один Датанод полностью работали друг с другом, прежде чем двигаться дальше и повторить ту же процедуру на оставшихся семи Пи.

Проблема : My Namenode (псевдоним: master) - это узел only , который отображается как 'Live Datanode ' под обоимиинтерфейс dfs-health и с помощью:

dfsadmin -report

Даже несмотря на то, что Datanode отображается как «Активный узел» (внутри Узловкластера Hadoop UI) и «мастер» не указан в файле ведомых.Конфигурация, к которой я стремлюсь, заключается в том, что Namenode не должен выполнять какие-либо операции Datanode.Кроме того, я пытаюсь настроить кластер таким образом, чтобы приведенная выше команда отображала мой Datanode (псевдоним: slave-01) как «Live Datanode».

Я подозреваю, что моя проблема вызвана тем, чточто и мои Namenode и Datanode используют одно и то же имя хоста (raspberrypi), однако я не уверен в изменениях конфигурации, которые мне необходимо внести, чтобы исправить проблему.Изучив документацию, я, к сожалению, не смог найти окончательного ответа относительно того, разрешено это или нет.

Если кто-то может помочь мне решить эту проблему, это будет очень ценно!Я предоставил любую соответствующую информацию о файле ниже (которая, по моему мнению, может быть полезна для решения проблемы).Спасибо :)

PS: Все файлы идентичны в Namenode и Datanode, если не указано иное.

================================================================================

Обновление 1

Я удалил localhost изведомые файлы на Namenode и Datanode, а также изменили соответствующие имена хостов на «master» и «slave-01».

После запуска JPS: я заметил, что все правильные процессы выполняются на главном узле, однако у меня возникла ошибка на датодале, для которого журнал показывает:

ExitCodeException exitCode = 1: chmod: изменение разрешений для '/ opt / hadoop_tmp / hdfs / datanode': операция не разрешена.

Если кто-нибудь может помочь мне решить эту проблему, это будет очень ценно!К сожалению, проблема сохраняется, несмотря на изменение разрешений с помощью 'chmod 777'.Заранее спасибо :)

================================================================================

Файл Hosts

127.0.0.1     localhost
::1           localhost ip6-localhost ip6-loopback
ff02::1       ip6-allnodes
ff02::2       ip6-allrouters

127.0.1.1     raspberrypi
192.168.1.2   master
192.168.1.3   slave-01

Главный файл

master

Файл ведомых

localhost
slave-01

Core-Site.xml

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000/</value>
    </property>
    <property>
        <name>fs.default.FS</name>
        <value>hdfs://master:9000/</value>
    </property>
</configuration>

HDFS-Site.xml

<configuration>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop_tmp/hdfs/datanode</value>
        <final>true</final>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop_tmp/hdfs/namenode</value>
        <final>true</final>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

Mapred-Site.xml

<configuration>
    <property>
        <name>mapreduce.job.tracker</name>
        <value>master:5431</value>
    </property>
    <property>
        <name>mapred.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

Пряжа-Site.xml

<configuration>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8025</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8035</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8050</value>
    </property>
</configuration>

1 Ответ

0 голосов
/ 05 декабря 2018

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

До и после загрузки, проверьте запуск hostname -f

Примечание: «мастер» действительно бессмыслен, если у вас есть «мастер YARN», «мастер HDFS», «мастер Hive» и т. Д.Лучше всего буквально сказать namenode, data{1,2,3}, yarn-rm и т. Д.

Что касается проблем с разрешениями, вы можете запустить все как root, но это небезопасно вне homelab, поэтому вы захотитевыполните несколько команд adduser как минимум для hduser (как описано в другом месте, но может быть иным), и yarn, затем выполните команды от имени этих пользователей после chown -R каталогов данных и журналов, которые будут принадлежатьэти пользователи и группы Unix, к которым они принадлежат

...