【问题标题】:Spark temp files not getting deleted automaticallySpark 临时文件未自动删除
【发布时间】:2019-01-31 02:19:38
【问题描述】:

我有 spark yarn 客户端提交作业,当它提交作业时,它会在我的“spark.local.dir”下创建一个目录,其中包含如下文件:

__spark_conf__8681611713144350374.zip
__spark_libs__4985837356751625488.zip

有没有办法自动清理这些?每当我提交火花作业时,我都会在同一个文件夹中再次看到这些新条目。这淹没了我的目录,我应该设置什么来自动清除它?

我什至在 SO 上查看了几个在线链接,但找不到解决此问题的方法。我发现的只是一种指定目录路径的方法 “spark.local.dir”。

【问题讨论】:

    标签: apache-spark hadoop


    【解决方案1】:

    存在三个 SPARK_WORKER_OPTS 以支持 worker 应用程序文件夹清理,此处复制以供进一步参考:来自 Spark Doc

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

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

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

    【讨论】:

    • 如果您在*.com/questions/30093676/… 中查看此答案的评论。它不适用于 YARN 客户端,这就是我的情况。
    • 你能检查一下配置 spark.eventLog.logBlockUpdates.enabled 是否设置为 true,如果是则设置为 false 会大大增加日志大小。
    • 这个答案有用吗?
    • 好的,如果您有解决方案,请发帖。