gpt4 book ai didi

docker - 无法访问位于 Docker 容器内的 Spark Web UI

转载 作者:行者123 更新时间:2023-12-02 03:15:30 25 4
gpt4 key购买 nike

我有一个远程虚拟机,并且正在开发一个在 Docker 容器内运行的 Spark 应用程序。

2018-12-16 13:07:10 INFO  main [AbstractConnector] - Started ServerConnector@79c3f01f{HTTP/1.1,[http/1.1]}{0.0.0.0:4040}
2018-12-16 13:07:10 INFO main [Utils] - Successfully started service 'SparkUI' on port 4040.
...
2018-12-16 13:07:10 INFO main [SparkUI] - Bound SparkUI to 0.0.0.0, and started at http://f58300e7e6ea:4040

日志显示它正确启动了 SparkUI,但绑定(bind)到了容器的本地主机。此时我决定EXPOSE在构建阶段使用端口 4040 并在 run 期间发布它与 -p 4040:4040/tcp绑定(bind)两个端口。

当我尝试联系<remote host name>:4040时从我的本地计算机(在 Firefox 中)我无法连接到 SparkUI。我也尝试过远程登录,但没有成功。

当我启动容器时,我可以使用 netstat 看到 4040 端口正在监听。但也许无法从远程访问。我怎样才能做到这一点?

基本上,我想使用浏览器从我的家用电脑 --> 远程虚拟机 -->(带有 Spark UI 的 Docker 容器)访问 SparkUI。

远程虚拟机运行 RHEL 7。

最佳答案

在你的日志中,它说 Spark UI 是从 started at http://f58300e7e6ea:4040 启动的。在这里f58300e7e6ea是docker内部网络主机名。

所以你要做的就是遵循,

在部署之前首先在您的应用程序中设置以下两个配置

  1. spark.driver.bindAddress作为您选择的任何字符串的主机名
  2. spark.driver.host作为您的远程虚拟机 IP 地址。

其次,当您使用镜像部署 docker 容器时,请使用 --hostname标志将主机名引入容器并使用之前选择的字符串。例如docker run --hostname myHostName --ip 10.1.2.3 ubuntu:16.04

关于docker - 无法访问位于 Docker 容器内的 Spark Web UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53802676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com