首页 > 解决方案 > Spark 临时文件不会被自动删除

问题描述

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

__spark_conf__8681611713144350374.zip
__spark_libs__4985837356751625488.zip

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

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

标签: apache-sparkhadoop

解决方案


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

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

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

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


推荐阅读