【发布时间】:2019-08-12 12:37:56
【问题描述】:
我有多个要并行执行的作业,它们使用动态分区将每日数据附加到同一路径中。
我面临的问题是在作业执行期间由 spark 创建的临时路径。多个作业最终共享同一个临时文件夹并导致冲突,这可能导致一个作业删除临时文件,而另一个作业失败并出现错误,指出预期的临时文件不存在。
我们可以更改个别工作的临时路径还是有任何替代方法来避免问题
【问题讨论】:
我有多个要并行执行的作业,它们使用动态分区将每日数据附加到同一路径中。
我面临的问题是在作业执行期间由 spark 创建的临时路径。多个作业最终共享同一个临时文件夹并导致冲突,这可能导致一个作业删除临时文件,而另一个作业失败并出现错误,指出预期的临时文件不存在。
我们可以更改个别工作的临时路径还是有任何替代方法来避免问题
【问题讨论】:
要更改临时位置,您可以这样做:
/opt/spark/bin/spark-shell --conf "spark.local.dir=/local/spark-temp"
spark.local.dir 更改读取和写入所有临时文件的位置,我建议在使用此参数的第一个会话运行之前通过命令行构建和打开此位置的位置。
【讨论】:
/opt/spark/bin/spark-submit --driver-memory 5g --execurtor-memory 2g --conf "spark.local.dir=/tmp/finance/spark-logs" --class org.apache.spark.company.driver /folder/to/jar/driver.jar financial_run /opt/spark/bin/spark-submit --driver-memory 5g --execurtor-memory 2g --conf "spark.local.dir=/tmp/procurement/spark-logs" --class org.apache.spark.company.driver /folder/to/jar/driver.jar procurement_run