在浏览器中看不到在docker容器中运行的hadoop ui

ygya80vv  于 2021-05-27  发布在  Hadoop
关注(0)|答案(2)|浏览(579)

我有一个hadoop集群,由三个不同主机上的三个容器组成;详细信息如下:首先,我通过以下命令在我的三台主机(150.20.11.133150.20.11.136150.20.11.157)中安装“weave net”:

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

然后我通过weave将三台主机连接在一起。实际上,我在三台主机上运行了这个命令:
例如,在150.20.11.133中:

  1. Weave launch 150.20.11.136 150.20.11.157

在将三台主机连接在一起之后,我必须使ssh在主服务器和工作服务器之间无密码。因此,我做了以下工作:在每个主机中:

  1. ssh-keygen -t rsa

在母版中:

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

因此,我可以在从主机到从主机之间运行ssh而无需密码。
在每台主机上,我都构建了docker文件,其中包含hadoop的配置,然后我运行了:
在母版中:

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

在从属1中:

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

在从属2中:

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

在每个容器中,我运行以下命令:

  1. chmod 700 ~/.ssh/
  2. chmod 600 ~/.ssh/*
  3. chown -R root ~/.ssh/
  4. chgrp -R root ~/.ssh/
  5. chmod -R 750 /root/.ssh/authorized_keys

在主容器中,我运行以下命令来运行ssh localhost:

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

另外,我在每个容器节点中启动了ssh服务:

  1. service ssh restart

所以,我可以在没有密码的情况下从主容器运行ssh到从容器。对于hadoop配置,我做了以下工作:首先在主节点:

  1. hadoop namenode -format

工人们将这些内容分为三部分:

  1. root@10.32.0.2
  2. root@10.32.0.3

core-site.xml将此内容放在三个容器中:

  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://root@10.32.0.1:9000</value>
  5. </property>
  6. </configuration>

hdfs-site.xml在三个容器中也有这些内容:

  1. <configuration>
  2. <property>
  3. <name>dfs.replication</name>
  4. <value>1</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>file:/usr/local/hadoop_store/hdfs/namenode</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>file:/usr/local/hadoop_store/hdfs/datanode</value>
  13. </property>
  14. </configuration>

然后我在主容器中运行这个:

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

当我在每个容器中运行jps时,我收到以下结果:在主容器中:

  1. 483 SecondaryNameNode
  2. 231 NameNode
  3. 747 Jps

在每个工人中:

  1. 117 DataNode
  2. 186 Jps

问题是,我想在浏览器中看到hadoop用户界面。我运行此url,但它没有显示任何内容:

  1. http://10.32.0.1:8088

顺便说一下,我已经在docker文件中公开了这些端口:

  1. EXPOSE 22 9000 8088 50070 50075 50030 50060

您能告诉我如何在浏览器中看到hadoop集群ui吗?
任何帮助都将不胜感激。

j7dteeu8

j7dteeu81#

似乎您不是通过/opt/hadoop/sbin/start-yarn.sh启动yarn的
端口8088用于yarn web ui,50070用于查看hdfs状态。

fsi0uk1n

fsi0uk1n2#

通过在hdfs-site.xml中添加这些行,我可以在浏览器中看到数据节点。

  1. <property>
  2. <name>dfs.http.address</name>
  3. <value>10.32.0.1:50070</value>
  4. </property>
  5. <property>
  6. <name>dfs.secondary.http.address</name>
  7. <value>10.32.0.1:50090</value>
  8. </property>

希望有帮助。

相关问题