今天,在執行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 的配置
spark以standalone執行時的日誌清理
spark執行任務的日誌一直沒太大關注,原因是硬碟資源充足,除非任務出錯時才去看一下,但沒有清理這些日誌的習慣。直到最近遇到的乙個問題是,硬碟資源嚴重缺乏,不得不需要定時去清理日誌。第一時間去看下spark本身的配置,是否支援定時清理日誌的選項,畢竟spark那麼成熟,相信很多人都面臨過這樣的問題。...
spark以standalone執行時的日誌清理
spark執行任務的日誌一直沒太大關注,原因是硬碟資源充足,除非任務出錯時才去看一下,但沒有清理這些日誌的習慣。直到最近遇到的乙個問題是,硬碟資源嚴重缺乏,不得不需要定時去清理日誌。第一時間去看下spark本身的配置,是否支援定時清理日誌的選項,畢竟spark那麼成熟,相信很多人都面臨過這樣的問題。...
Spark執行時程式排程解析
1,spark應用程式會在乙個物理節點上有驅動程式 driver 2,驅動程式 driver 會分發每個tasks到worker節點 3,worker節點就會返回result到dirver節點 1,分布式檔案系統 file system 載入資料集 rdd 2,transformations延遲執行...