首页 > 解决方案 > 并行提交多个作业时 spark-submit 失败

问题描述

我有一个 Spark 应用程序,我需要将其应用于不同的文件并尽快获得结果,所以为了做到这一点,我创建了一个 python 模块,它将准备文件,然后启动不同的 spark-submits 作业。

在继续之前,我将解释一下 spark-submit 如何启动工作。

原生 spark-submit 的启动库在 TEMP 目录下创建一个临时文本文件,命令执行,更多详情请点击这里。该文件的路径具有以下语法: .../AppData/Local/Temp/spark-class-launcher-output- {RANDOM_VALUE} .txt 其中 RANDOM_VALUE 似乎是一个随机数。

问题是,当我同时启动多个 spark-jobs 时,我遇到了 RANDOM_VALUE 的冲突,因此并行化会发生冲突,因为不同的 spark-jobs 使用相同的 spark-class-launcher-output- {RANDOM_VALUE} .txt文件。

因此,一个简单的解决方案是为每次执行 spark 更改 TEMP 目录,例如 .../AppData/Local/Temp/my_temp_N其中N将从零变为并行作业的数量减一。

这是我的问题。我们如何更改 spark-submit 实例的 TEMP 目录?

标签: apache-sparkparallel-processingspark-submit

解决方案


我试图通过修改 tmp 目录来解决这个问题,但 id 不起作用。问题是,spark 似乎在使用 tmp 目录进行数据处理之前就编写了这个 spark-class-launcher-file。所以最后我在执行之间添加了一个短暂的延迟......


推荐阅读