Spark下的Work目录定时清理

 问题

在跑spark任务的时候发现任务不能执行。在查看的时候发现spark work节点的/usr/local/spark/work/目录占用了很大空间,导致根目录/满了。


原因
使用spark standalone模式执行任务,没提交一次任务,在每个节点work目录下都会生成一个文件夹,命名规则app-20160614191730-0249。该文件夹下是任务提交时,各节点从主节点下载的程序所需要的资源文件。这些目录每次执行都会生成,且不会自动清理,执行任务过多会将存储撑爆。每一个application的目录中都是该spark任务运行所需要的依赖包。

解决方案

spark-env.sh中添加配置:
export SPARK_WORKER_OPTS="
-Dspark.worker.cleanup.enabled=true             # 是否开启自动清理
-Dspark.worker.cleanup.interval=1800            # 清理周期,每隔多长时间清理一次,单位秒
-Dspark.worker.cleanup.appDataTtl=3600"     # 保留最近多长时间的数据

posted @ 2024-05-29 14:34  业余砖家  阅读(16)  评论(0编辑  收藏  举报