Не удается увидеть Hadoop UI, который работает внутри контейнера докера, в браузере - PullRequest
0 голосов
/ 31 марта 2019

У меня есть кластер Hadoop из трех контейнеров на трех разных хостах; детали в следующем: Сначала я устанавливаю «weave net» на трех моих хостах (150.20.11.133,150.20.11.136,150.20.11.157) с помощью этой команды:

 sudo curl -L git.io/weave -o /usr/local/bin/weave
 sudo chmod a+x /usr/local/bin/weave
 eval $(weave env)

Затем я соединил три хоста через переплетение. Фактически я выполнил эту команду на трех хостах:

Например в 150.20.11.133:

 Weave launch 150.20.11.136 150.20.11.157

После соединения трех хостов мне пришлось сделать SSH без пароля между Мастером и Рабочими. Поэтому у меня там работает: На каждом хосте:

 ssh-keygen -t rsa

В мастерской:

 ssh-copy-id spark@172.28.10.136
 ssh-copy-id spark@172.28.10.157
 cat /home/user/.ssh/id_rsa.pub >> /home/user/.ssh/authorized_keys

В результате этого я могу запустить SSH без пароля от главного хоста к подчиненным.

На каждом хосте я собрал свой файл Docker, который имел конфигурацию для hadoop, и запустил его:

В Мастер:

 docker run -v /home/user/.ssh:/root/.ssh --privileged -p 52222:22 
 -e WEAVE_CIDR=10.32.0.1/12 -ti my-hadoop

В раб. 1:

 docker run -v /home/user/.ssh:/root/.ssh --privileged -p 52222:22 
 -e WEAVE_CIDR=10.32.0.2/12 -ti my-hadoop

В раб. 2:

 docker run -v /home/user/.ssh:/root/.ssh --privileged -p 52222:22 
 -e WEAVE_CIDR=10.32.0.3/12 -ti my-hadoop

В каждом контейнере я запускал следующие команды:

 chmod 700 ~/.ssh/
 chmod 600 ~/.ssh/*
 chown -R root ~/.ssh/
 chgrp -R root ~/.ssh/
 chmod -R 750 /root/.ssh/authorized_keys

В главном контейнере я запустил эту команду для запуска SSH localhost :

 ssh-keygen -f "/root/.ssh/known_hosts" -R localhost

Кроме того, я запустил службу SSH в каждом узле контейнера:

 service ssh restart

Итак, я могу запустить SSH из главного контейнера в ведомые без пароля. Для настройки hadoop я сделал эти работы: Первый в главном узле:

  hadoop namenode -format

рабочие содержали это содержимое в трех контейнерах:

  root@10.32.0.2
  root@10.32.0.3

core-site.xml содержал это содержимое в трех контейнерах:

  <configuration>
    <property>
       <name>fs.defaultFS</name>
       <value>hdfs://root@10.32.0.1:9000</value>
    </property>
  </configuration>

hdfs-site.xml содержал это содержимое также в трех контейнерах:

   <configuration>
    <property>
       <name>dfs.replication</name>
       <value>1</value>
    </property>
    <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:/usr/local/hadoop_store/hdfs/namenode</value>
    </property>
    <property>
       <name>dfs.datanode.data.dir</name>
       <value>file:/usr/local/hadoop_store/hdfs/datanode</value>
    </property>
   </configuration>

Затем я запустил это в мастер-контейнере:

   /opt/hadoop/sbin/start-dfs.sh

Когда я запускал jps в каждом контейнере, я получил следующие результаты: В мастер-контейнере:

   483 SecondaryNameNode
   231 NameNode
   747 Jps

На каждого работника:

   117 DataNode
   186 Jps

Проблема в том, что я хочу видеть Hadoop UI в браузере. Я запускаю этот URL, но он ничего не показывает:

    http://10.32.0.1:8088

Кстати, я уже выставил эти порты в файле Docker:

    EXPOSE 22 9000 8088 50070 50075 50030 50060

Подскажите, пожалуйста, как я могу увидеть пользовательский интерфейс кластера Hadoop в браузере?

Буду признателен за любую помощь.

Ответы [ 2 ]

1 голос
/ 31 марта 2019

Похоже, вы не начали YARN с помощью /opt/hadoop/sbin/start-yarn.sh

порт 8088 предназначен для веб-интерфейса YARN, а 50070 - там, где вы можете видеть состояние HDFS.

0 голосов
/ 08 апреля 2019

Я могу увидеть датододы в браузере, добавив эти строки в hdfs-site.xml .

<property>
     <name>dfs.http.address</name>
     <value>10.32.0.1:50070</value>
</property>

<property>
     <name>dfs.secondary.http.address</name>
     <value>10.32.0.1:50090</value>
</property>

Надеюсь, это было полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...