在浏览器中看不到 docker 容器内 运行 的 Hadoop UI
Cannot see Hadoop UI which is running inside docker container, in browser
我在三个不同的主机上有一个由三个容器组成的 Hadoop 集群;详情如下:
首先,我通过以下命令在我的三台主机(150.20.11.133、150.20.11.136、150.20.11.157)中安装 "weave net":
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
将三台主机连接在一起后,我必须让 Master 和 Workers 之间的 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
在slave1中:
docker run -v /home/user/.ssh:/root/.ssh --privileged -p 52222:22
-e WEAVE_CIDR=10.32.0.2/12 -ti my-hadoop
在slave2中:
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
workers 在三个容器中有这些内容:
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
在每个 Worker 中:
117 DataNode
186 Jps
问题是,我想在浏览器中查看 Hadoop UI。我运行这个URL,但是它没有显示任何东西:
http://10.32.0.1:8088
顺便说一下,我已经在 docker 文件中公开了这些端口:
EXPOSE 22 9000 8088 50070 50075 50030 50060
你能告诉我如何在浏览器中查看 Hadoop 集群 UI 吗?
如有任何帮助,我们将不胜感激。
你似乎没有通过 /opt/hadoop/sbin/start-yarn.sh
启动 YARN
端口 8088 用于 YARN Web UI,端口 50070 用于查看 HDFS 状态。
通过在 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>
希望对您有所帮助。
我在三个不同的主机上有一个由三个容器组成的 Hadoop 集群;详情如下: 首先,我通过以下命令在我的三台主机(150.20.11.133、150.20.11.136、150.20.11.157)中安装 "weave net":
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
将三台主机连接在一起后,我必须让 Master 和 Workers 之间的 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
在slave1中:
docker run -v /home/user/.ssh:/root/.ssh --privileged -p 52222:22
-e WEAVE_CIDR=10.32.0.2/12 -ti my-hadoop
在slave2中:
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
workers 在三个容器中有这些内容:
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
在每个 Worker 中:
117 DataNode
186 Jps
问题是,我想在浏览器中查看 Hadoop UI。我运行这个URL,但是它没有显示任何东西:
http://10.32.0.1:8088
顺便说一下,我已经在 docker 文件中公开了这些端口:
EXPOSE 22 9000 8088 50070 50075 50030 50060
你能告诉我如何在浏览器中查看 Hadoop 集群 UI 吗?
如有任何帮助,我们将不胜感激。
你似乎没有通过 /opt/hadoop/sbin/start-yarn.sh
启动 YARN端口 8088 用于 YARN Web UI,端口 50070 用于查看 HDFS 状态。
通过在 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>
希望对您有所帮助。