spark-jobserver:工作者没有连接回驱动程序

时间:2017-07-13 18:03:34

标签: apache-spark spark-jobserver

我在两台机器上设置了一个小型Spark环境。一个运行一个主人和一个工人,另一个只运行一个工人。我可以使用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容器,因此它将自己附加到主机网络。但是,启动作业导致Connection再次被拒绝,这次说它无法连接到172.30.10.10:nnnn172.30.10.10是我想要运行作业服务器的主机的IP地址,它可以从工作节点和主节点访问(Spark实例也在Docker容器中运行,但它们也连接到主机网络)。

深入挖掘,我尝试启动一个只有JVM和Spark的Docker容器,也用--network host运行它并从内部启动了Spark作业。这很有用。

我可能会遗失什么?

1 个答案:

答案 0 :(得分:0)

事实证明我错过了启动shuffle服务。我将自定义jobserver容器配置为使用动态分配,这需要启动外部shuffle服务。