apache-spark - 并行提交多个作业时 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 目录?
解决方案
我试图通过修改 tmp 目录来解决这个问题,但 id 不起作用。问题是,spark 似乎在使用 tmp 目录进行数据处理之前就编写了这个 spark-class-launcher-file。所以最后我在执行之间添加了一个短暂的延迟......
推荐阅读
- python-3.x - 用函数python替换nan值
- apache-kafka - Kafka Connect - json 路径 - 正则表达式条件不起作用
- azure-synapse - 如何创建从 azure 分析服务到 azure synapse SQL 池的链接服务
- kubernetes - Kubernetes 入口防火墙规则
- mysql - 从子查询mysql获取最大值列
- resteasy - Quarkus 服务器端 http-cache
- reactjs - 搜索表 React Hooks 后如何返回旧状态
- c++ - 如何将抽象类作为函数参数传递,然后在原始类超出范围后使用?
- graph - 我需要为我的 JMeter 测试计划生成平均响应时间和平均延迟时间 .csv 文件
- android - Android Room - “无法弄清楚如何将此字段保存到数据库中。”