【发布时间】:2019-02-28 15:12:08
【问题描述】:
我有一个 Spark 应用程序,我需要将它应用到不同的文件并尽快获得结果,所以为了做到这一点,我创建了一个 python 模块,它将准备文件然后启动不同的 spark-提交作业。
在继续之前,我将解释一下 spark-submit 如何启动作业。
本机 spark-submit 的启动库在 TEMP 目录中创建一个临时文本文件,其中包含要执行的命令,更多详细信息 click here。此文件的路径具有以下语法:.../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-spark parallel-processing spark-submit