如何在mesos / docker上通过spark-submit使用本地应用程序脚本?

时间:2018-07-31 14:53:42

标签: docker apache-spark pyspark mesos spark-submit

我正在{cluster“模式下使用spark-submit,并针对在Mesos上运行的Spark集群使用Python脚本,并在spark.mesos.executor.docker.image中为执行程序设置了自定义Docker映像。

我的脚本文件已经被烘焙到Docker映像中(假设在路径/app/script.py处),所以我不想在执行之前使用spark-submit的功能通过HTTP下载脚本。

每个https://spark.apache.org/docs/latest/submitting-applications.html#advanced-dependency-management都可以通过将应用程序脚本指定为local: URL(例如,URL)来实现。 spark-submit [...options...] local:/app/script.py。但这不起作用,我在Mesos上看到类似以下的错误(spark驱动程序任务的stderr,由spark-dispatcher框架安排):

I0727 20:31:50.164263  9207 fetcher.cpp:533] Fetcher Info: {"cache_directory":"\/tmp\/mesos\/fetch\/root","items":[{"action":"BYPASS_CACHE","uri":{"cache":false,"extract":true,"value":"\/app\/script.py"}}],"sandbox_directory":"\/data\/mesos\/slaves\/GUID\/frameworks\/GUID\/executors\/driver-TIMESTAMP\/runs\/GUID","user":"root"}
I0727 20:31:50.170289  9207 fetcher.cpp:444] Fetching URI '/app/script.py'
I0727 20:31:50.170361  9207 fetcher.cpp:285] Fetching directly into the sandbox directory
I0727 20:31:50.170413  9207 fetcher.cpp:222] Fetching URI '/app/script.py'
cp: cannot stat ‘/app/script.py’: No such file or directory
E0727 20:31:50.174051  9207 fetcher.cpp:579] EXIT with status 1: Failed to fetch '/app/script.py': Failed to copy '/app/script.py': exited with status 1
s 1

浏览https://spark.apache.org/docs/latest/running-on-mesos.html之后,我猜测local:路径是由“ MesosClusterDispatcher”解释的,该守护程序是一个为Spark驱动程序进程旋转容器的守护进程(使用我的自定义spark执行程序Docker映像)。由于此调度程序本身并未在自定义Docker映像/容器中运行,因此无法找到该文件。

还有其他方法可以告诉spark-submit 下载应用程序脚本,而仅使用Docker映像中已经存在的脚本吗?

0 个答案:

没有答案