深入探究Spark -- 了解Executor和參數配置


創建與分配Executor的方式根據各種資源調度方式的不同而有差異,但拿到Executor后每種資源調度方式下的Executor的運作都一樣,並由Executor完成最終的計算
 
Task在Executor中執行時涉及到依賴環境的創建和分發、任務執行、任務結果的處理、Driver端的處理(書中有詳細介紹,但和前面Scheduler感覺有重復部分)
 
 
 
Executor的工作參數設置:
 
spark.executor.memory:
 
配置Executor最多使用的內存大小,原理是設置Executor的JVM Heap尺寸實現。由於內存資源有限,此參數設置過大會導致部分任務分配不到資源,設置過小會產生頻繁的垃圾回收和讀寫磁盤
 
每個Executor可以支持的Task數量取決於持有的CPU core的數量
 
准確評估數據集,要看在BlockManager的日志中的RDD cache,每個cache分區大小
 
內存比較緊張時,可以合理規划分區任務的數據規模,如增加分區數可增加任務數,減小每個任務的處理量
 
 
日志相關:
 
spark.eventLog.enabled設置為true打開日志保存到本地,方便調試和追蹤問題,但日志需要定時清理,清理策略可以設置:
 
 
spark.executor.heartbeatInterval:
 
Executor和Driver的心跳間隔,就是匯報運行和統計信息的間隔
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM