Spark 執行架構核心理解總結

2021-08-22 10:26:39 字數 815 閱讀 9936

2 spark-submit:(spark的提交方式有三種)

4 sparkcontext:在初始化的時候做兩件事:就是構造出來dagschedule和taskscheduler..

5. master:通知worker啟動executor,

9. dagscheduler:基於stage的邏輯排程模組,負責將每個job分割成乙個dag圖

10 taskscheduler:基於task的任務排程模組,負責每個task的跟蹤和向dagscheduler匯報任務執**況

執行到sparkcontext:它會構造出dagscheduler,和taskscheduler,

executer啟動之後會反向主持到taskscheduler上去。

每執行乙個action就會建立乙個job,job會提交給dagscheduler,它會將job劃分為多個stage,每乙個stage會建立乙個taskset。

taskscheduler會把taskset裡每乙個task提交到executer上執行

executer每次接收到task都會用taskrunner來封裝task,然後到執行緒池中取出乙個執行緒,執行task

taskrunner:將我們自己編寫的**,也就是要執行的運算元以及函式,拷貝,反序列化,然後執行task,

(taskrunner分為兩種,sufflemaptask和resulttask,只有最後乙個stage是resulttask)

所以,最後整個spark應用程式的執行,就是stage分批次作為taskset提交到executor執行,每個task針對rdd的乙個partition,執行程式中的運算元和函式,依次類推直到執行完畢!

spark核心架構

driver部分的 sparkconf sparkcontext driver 部分 val conf new sparkconf val sc new sparkcontext conf end executor部分 分布到集群中的 比如 textfile flatman map worker 管...

Spark執行架構

job 包含多個task組成的平行計算,乙個dag觸發的作業,由action運算元觸發,在sparkcontext中通過runjob方法向spark提交job stage job的排程單位,每個job會根據rdd的寬依賴關係被切分成很多stage,每個stage中包含一組相同的task,這組task...

Spark執行架構

在driver program中新建sparkcontext 包含sparkcontext的程式稱為driver program 2 sparkcontext向資源管理器申請執行executor資源,並啟動standaloneexecutorbackend,executor向sparkcontent...