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...