【问题标题】:Change temporary path for individual job from spark code从 spark 代码更改单个作业的临时路径
【发布时间】:2019-08-12 12:37:56
【问题描述】:

我有多个要并行执行的作业,它们使用动态分区将每日数据附加到同一路径中。

我面临的问题是在作业执行期间由 spark 创建的临时路径。多个作业最终共享同一个临时文件夹并导致冲突,这可能导致一个作业删除临时文件,而另一个作业失败并出现错误,指出预期的临时文件不存在。

我们可以更改个别工作的临时路径还是有任何替代方法来避免问题

【问题讨论】:

    标签: apache-spark databricks


    【解决方案1】:

    要更改临时位置,您可以这样做:

    /opt/spark/bin/spark-shell --conf "spark.local.dir=/local/spark-temp"
    

    spark.local.dir 更改读取和写入所有临时文件的位置,我建议在使用此参数的第一个会话运行之前通过命令行构建和打开此位置的位置。

    【讨论】:

    • 但更改此设置将更改所有运行的位置。我正在通过 oozie 工作流程运行作业。需要为每个作业运行创建单独的路径
    • 这对 Oozie 工作流管理器没有帮助,但这是您正在寻找的想法。每个independnet Spark-Job 读写自己的临时文件夹:/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
    猜你喜欢
    • 1970-01-01
    • 2015-02-16
    • 2021-02-24
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多