You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark Standalone临时目录已满:Jupyter PySpark内核环境清理方案咨询

解决PySpark + Jupyter Notebook下/tmp目录占满的问题

我之前也碰到过类似的PySpark+Jupyter场景下/tmp磁盘被撑爆的情况,结合实际运维经验给你几个可行的方案,分两种思路来聊:

一、让Spark在关闭Jupyter内核时自动清理临时文件

要实现内核关闭时自动清文件,有几个实用的办法:

  • 换个更大的磁盘存Spark临时文件(最推荐):如果你的节点有其他大容量磁盘,直接修改spark.local.dir参数,把Spark的临时文件路径转移过去。
    你可以在Notebook里初始化SparkSession时直接设置:
    from pyspark.sql import SparkSession
    spark = SparkSession.builder \
        .config("spark.local.dir", "/path/to/your/large-disk/tmp") \
        .getOrCreate()
    
    也可以在集群的spark-defaults.conf里全局配置,这样所有PySpark应用都会自动用这个路径:spark.local.dir /path/to/your/large-disk/tmp
  • 利用Jupyter内核钩子做清理:Jupyter支持在内核启动/关闭时执行自定义脚本。你可以找到PySpark内核的kernel.json文件(通常在~/.local/share/jupyter/kernels/pyspark/或者集群的Jupyter安装目录下),在配置里添加一个关闭时触发的脚本,专门删除当前Spark应用生成的临时文件(Spark的临时文件夹一般以spark-开头)。
  • 开启Spark Driver端的自动清理:除了Worker端的清理,还可以设置spark.cleaner.referenceTracking.cleanCheckpoints=true和spark.cleaner.ttl(这个参数控制Driver端不再使用的RDD、广播变量等对象的存活时间),让Driver主动清理不再需要的临时数据。

二、关于调整spark.worker.cleanup.appDataTtl的建议

如果暂时没法换磁盘,调短ttl到30分钟是可行的,但要注意几个细节:

  • 匹配你的任务时长:如果你的Jupyter里有运行超过30分钟的长任务,Worker清理时可能会误删正在使用的临时文件,导致任务失败。所以如果你的任务大多是30分钟内能完成的短任务,这个设置没问题;如果有长任务,就得把ttl设得比最长任务时间再长一点(比如最长任务25分钟,设成40分钟)。
  • 调整清理线程的执行频率:默认Spark Worker的清理线程是每小时跑一次(通过spark.worker.cleanup.interval控制,单位是秒),如果ttl设成30分钟,建议把清理间隔也改成30分钟(即1800秒),这样每30分钟就会扫描一次,删除超过30分钟的应用数据,能更及时控制/tmp的占用。
  • 单独配置日志的存活时间:如果日志文件占了很大空间,可以单独设置spark.worker.cleanup.logTtl,把日志的ttl设得更短(比如15分钟),不用影响任务数据的保留时间。

总结下来的最优实践

  1. 优先换spark.local.dir到更大的磁盘,这是从根源解决容量问题的办法,比频繁清理更稳妥。
  2. 如果必须用现有的/tmp目录,建议结合:
    • 把spark.worker.cleanup.appDataTtl设为你最长任务的时长+缓冲时间
    • 把spark.worker.cleanup.interval设为和ttl一致或者更短
    • 配置Jupyter内核的关闭钩子,确保关闭内核时立即清理当前应用的临时文件
  3. 作为补充,你可以加个定时任务,比如每天凌晨执行find /tmp -name "spark-*" -mtime +1 -delete,删除超过1天的Spark临时文件,防止漏清理。

内容的提问来源于stack exchange,提问作者Antonio Lisi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:09:55