1. 程式人生 > >【解決】Spark執行時產生的臨時目錄的問題

【解決】Spark執行時產生的臨時目錄的問題

[Author]:  kwu

今天,在執行spark-sql時,查詢資料量超過1.7億行,資料量大小38G,出現系統盤佔用突然變高的情況,監控如下:


磁碟佔用監控

檢查為 /tmp 目錄下,spark生成的臨時目錄佔用了大量的磁碟空間,生成的spark臨時檔案超過15G了。

解決方案為:

1、刪除 /tmp/spark* 的檔案

rm -rf  /tmp/spark* 

2、修改spark執行時臨時目錄的配置,在 conf 目錄下的spark-defaults.conf的配置檔案,增加如下一行:

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

說明:可配置多個目錄,以 "," 分隔。

3、也配置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 的配置