你好,
我麵臨一個問題大的壓縮包解壓,適合在內存中我不得不限製火花同時處理太多的文件我更改以下屬性8核心vm集群:
spark.task。cpu 4
此設置閾值之前泄漏或伯父錯誤當解壓tarball
但是我下一階段的管道,我想使用集群的最大容量通過設置:
spark.task。cpu 1
目前,作為一種變通方法來存儲中間結果,讀取數據與其他集群與適當的設置。
我的問題是:我能spark.task動態變化。每個階段或轉換的cpu嗎?
同樣的問題沒有回答:
https://stackoverflow.com/questions/40759007/dynamic-cpus-per-task-in-spark
嗨@Thor,
火花不提供能夠動態地修改配置設置,比如spark.task。cpu,為各個階段或在應用程序運行時轉換。一旦配置屬性設置一個火花的應用程序,它在整個執行保持不變。這是一個集群設置禁用/啟用它的唯一方法,將重新啟動集群。
如果你尋求一個更靈活的資源配置的方法,你可以探索火星的內置動態分配特性,作為spark.dynamicAllocation.enabled表示。這個特性可以像spark.executor加上精致的屬性。核和spark.executor.memory。這種組合允許火花自動適應執行人根據工作負載的數量。然而,值得注意的是,即使有這個方法,你仍然不能動態地修改spark.task。cpu在每級的基礎上。
我希望這可以幫助。