【问题标题】:Temp storage in Apache sparkApache Spark 中的临时存储
【发布时间】:2020-06-09 18:54:24
【问题描述】:

我正在设置 10 个节点的 Spark 集群。

spark 在运行 spark 作业时创建 temp files。它是否为master node 或相应的工作节点上的所有工作节点创建临时文件?

该临时目录的路径是什么?我们在哪里设置路径?

其次,如果 temp dir 路径被填满,肯定会在存储更多内容时引发错误。如何在运行 spark 作业本身时删除这些临时文件以避免此错误?将spark.worker.cleanup.enabled 设置为true 可以吗?

【问题讨论】:

    标签: apache-spark


    【解决方案1】:

    Spark Doc to set temp dir

    spark.local.dir可以使用

    用于 Spark 中“临时”空间的目录,包括地图输出文件和存储在磁盘上的 RDD。这应该在系统中一个快速的本地磁盘上。它也可以是不同磁盘上多个目录的逗号分隔列表。注意:在 Spark 1.0 和更高版本中,这将被集群管理器设置的 SPARK_LOCAL_DIRS (Standalone)、MESOS_SANDBOX (Mesos) 或 LOCAL_DIRS (YARN) 环境变量覆盖。

    Spark Docs for temp dir clean up configs

    • spark.worker.cleanup.enabled,默认值为false,启用定期清理工作/应用程序目录。请注意,这只影响独立模式,因为 YARN 的工作方式不同。只清理已停止应用的目录。

    • spark.worker.cleanup.interval,默认为1800,即30分钟,控制worker清理本地机器上旧应用程序工作目录的时间间隔,以秒为单位。

    • spark.worker.cleanup.appDataTtl,默认7*24*3600(7天),每个worker上保留应用工作目录的秒数。这是生存时间,应该取决于您拥有的可用磁盘空间量。应用程序日志和 jar 被下载到每个应用程序工作目录。随着时间的推移,工作目录会迅速填满磁盘空间,尤其是在您非常频繁地运行作业的情况下。

    【讨论】:

    • 所有这些临时文件将存储在哪里?在主节点还是在相应的工作节点上?
    • 各个worker节点的磁盘+Master节点的永久磁盘
    • 两者同时使用有什么意义?
    • 曾经的工作人员将间歇性的结果存储到磁盘上,主要用于检查点的目的,以防万一出现任何问题,从前一个检查点而不是从一开始就尝试作业。与 Master 相同,它保存从 Worker 节点返回的结果 @LennyMarshal
    • 你确定 spark.local.dir 适用于 2x 版本吗?
    猜你喜欢
    • 1970-01-01
    • 2015-11-29
    • 2019-05-02
    • 1970-01-01
    • 2017-10-06
    • 2015-07-17
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多