Spark 內核

Spark內核

Spark內核泛指Spark的核心運行機制,包括Spark核心組件的運行機制、Spark任務調度機制、Spark內存管理機制、Spark核心功能的運行原理等。

Spark核心組件

Driver

Spark驅動器節點,用於執行Spark任務中的main方法:

  1. 將用戶程序轉化爲作業(job);
  2. 在Executor之間調度任務(task);
  3. 跟蹤Executor的執行情況;
  4. 通過UI展示查詢運行情況;

Executor

Spark Executor節點是一個JVM進程,負責在 Spark 作業中運行具體任務,任務彼此之間相互獨立。Spark 應用啓動時,Executor節點被同時啓動,並且始終伴隨着整個 Spark 應用的生命週期而存在。如果有Executor節點發生了故障或崩潰,Spark 應用也可以繼續執行,會將出錯節點上的任務調度到其他Executor節點上繼續運行。
Executor兩個核心功能:

  1. 負責運行組成Spark應用的任務,並將結果返回給驅動器進程;
  2. 它們通過自身的塊管理器(Block Manager)爲用戶程序中要求緩存的 RDD 提供內存式存儲。RDD 是直接緩存在Executor進程內的,因此任務可以在運行時充分利用緩存數據加速運算。

Spark核心運行流程

任務提交-Driver進程-集羣管理器-分配Executor並啓動-Driver所需資源滿足-main函數(懶執行)-action算子-反向推算-根據寬依賴劃分stage-每一個stage對應一個taskset(中有多個task)–分發task到指定的Executor執行(本地化原則)-Executor不斷與Driver通信,報告任務運行情況。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章