【Spark】Spark运行时产生的临时目录的问题

前言

今日发现下游用户spark 任务在我们的大数据集群上的 client 节点 /tmp 目录下产生了60G大量的临时文件。触发监控告警。

原理

Spark 默认使用 /tmp/spark* 作为临时目录以存储一些临时数据, 如果该默认路径所在的磁盘满了, 会出现报错

Failed to create local root dir in /tmp/spark

解决方案

方法一(推荐):

在 spark-submit 命令行加入如下配置

--conf spark.local.dir=/user/xxx/spark_tmp \

方法二:

修改spark执行时临时目录的配置,在 conf 目录下的spark-defaults.conf的配置文件,增加如下一行:

spark.local.dir=/user/xxx/spark_tmp

但是这种方法:修改的是全局的,别的用户没有这种问题,如果改了会对别的用户产生影响。

方法三:

配置spark-env.sh下增加:

export SPARK_LOCAL_DIRS=spark.local.dir /diskb/sparktmp,/diskc/sparktmp,/diskd/sparktmp,/diske/sparktmp,/diskf/sparktmp,/diskg/sparktmp

使用逗号隔开,如果spark-env.sh与spark-defaults.conf都配置,则SPARK_LOCAL_DIRS覆盖spark.local.dir 的配置

方法四:

在 .bashrc 或者 .zshrc 文件中设置 SPARK_LOCAL_DIRS 环境变量:

spark.local.dir=/user/xxx/spark_tmp

参考:

  1. https://blog.csdn.net/BDCHome/article/details/45396979
  2. https://blog.csdn.net/Eric_1993/article/details/107723211#:~:text=Spark%20%E9%BB%98%E8%AE%A4%E4%BD%BF%E7%94%A8%20%2Ftmp%2Fspark%2A%20%E4%BD%9C%E4%B8%BA%E4%B8%B4%E6%97%B6%E7%9B%AE%E5%BD%95%E4%BB%A5%E5%AD%98%E5%82%A8%E4%B8%80%E4%BA%9B%E4%B8%B4%E6%97%B6%E6%95%B0%E6%8D%AE%2C%20%E5%A6%82%E6%9E%9C%E8%AF%A5%E9%BB%98%E8%AE%A4%E8%B7%AF%E5%BE%84%E6%89%80%E5%9C%A8%E7%9A%84%E7%A3%81%E7%9B%98%E6%BB%A1%E4%BA%86%2C%20%E4%BC%9A%E5%87%BA%E7%8E%B0%E6%8A%A5%E9%94%99%20Failed%20to,%2Ftmp%2Fspark%201%20%E6%AD%A4%E6%97%B6%E6%8C%89%E7%85%A7%E5%8D%9A%E5%AE%A2%20Spark%E8%BF%90%E8%A1%8C%E5%9C%A8Standalone%E6%A8%A1%E5%BC%8F%E4%B8%8B%E4%BA%A7%E7%94%9F%E7%9A%84%E4%B8%B4%E6%97%B6%E7%9B%AE%E5%BD%95%E7%9A%84%E9%97%AE%E9%A2%98%20%E4%B8%AD%E7%9A%84%E5%A4%84%E7%90%86%E6%96%B9%E6%B3%95%2C%20%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%8F%90%E4%BA%A4%20Spark%20%E4%BB%BB%E5%8A%A1%E6%97%B6%E5%8A%A0%E4%B8%8A%E9%85%8D%E7%BD%AE%3A
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值