前言
今日发现下游用户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 的配置文章来源:https://www.toymoban.com/news/detail-463115.html
方法四:
在 .bashrc 或者 .zshrc 文件中设置 SPARK_LOCAL_DIRS 环境变量:文章来源地址https://www.toymoban.com/news/detail-463115.html
spark.local.dir=/user/xxx/spark_tmp
参考:
- https://blog.csdn.net/BDCHome/article/details/45396979
- 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
到了这里,关于【Spark】Spark运行时产生的临时目录的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!