【发布时间】:2017-07-14 15:34:49
【问题描述】:
我在两台机器上搭建了一个小型 Spark 环境。一个运行一个master和一个worker,另一个只运行一个worker。我可以使用 Spark Shell 来使用这个集群,例如:
spark-shell --master spark://mymaster.example.internal:7077
我可以在那里运行正确分配到节点的计算,所以一切运行正常。
但是,我在使用 spark-jobserver 时遇到了问题。
首先尝试启动 Docker 容器(环境变量 SPARK_MASTER 指向正确的主 URL)。当工作开始时,它被推送到的工人抱怨它无法连接回172.18.x.y:nnnn。这很清楚,因为这是运行作业服务器的 Docker 容器的内部 IP 地址。
所以,我用--network host 再次运行了jobserver 容器,所以它自己连接到主机网络。然而,开始工作导致连接再次被拒绝,这一次说它无法连接到172.30.10.10:nnnn。 172.30.10.10 是我要运行作业服务器的主机的 IP 地址,它可以从工作节点和主节点访问(Spark 实例也在 Docker 容器中运行,但它们也连接到主机网络)。
深入挖掘,我尝试启动一个内部只有一个 JVM 和 Spark 的 Docker 容器,也使用--network host 运行它,并从内部启动一个 Spark 作业。这行得通。
我可能缺少什么?
【问题讨论】:
标签: apache-spark spark-jobserver