Spark之Executors memory空間分配


Executors


Spark executor internals:

 

 

每個執行器都有一個executor JVM, 存儲RDD分區, 緩存RDD分區,運行內部線程。

如果內核數量超過了任務所需的數量,那么JVM中也會有空閑的內核。

 

Executor memory management


 

 

 

 

 

 

 

 

其中最重要的優化在於動態占用機制,其規則如下:

  • 設定基本的存儲內存和執行內存區域(spark.storage.storageFraction 參數),該設定確定了雙方各自擁有的空間的范圍
  • 雙方的空間都不足時,則存儲到硬盤;若己方空間不足而對方空余時,可借用對方的空間;(存儲空間不足是指不足以放下一個完整的 Block)
  • 執行內存的空間被對方占用后,可讓對方將占用的部分轉存到硬盤,然后"歸還"借用的空間
  • 存儲內存的空間被對方占用后,無法讓對方"歸還",因為需要考慮 Shuffle 過程中的很多因素,實現起來較為復雜[4]

 

 

 

 

 


免責聲明!

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



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