【解決】Spark執行時產生的臨時目錄的問題
阿新 • • 發佈:2019-02-07
[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 的配置