job:包含多個task組成的平行計算,乙個dag觸發的作業,由action運算元觸發,在sparkcontext中通過runjob方法向spark提交job
stage:job的排程單位,每個job會根據rdd的寬依賴關係被切分成很多stage,每個stage中包含一組相同的task,這組task也叫taskset
task:被送到某個executor的執行單元。乙個分割槽對應乙個task,task中rdd中對應stage中包含的運算元,task被封裝好後放入executor的執行緒池中執行
taskset:一組關聯的,相互之間沒有shuffle依賴關係的任務組成的任務集。
乙個應用程式由乙個driver program和多個job構成。乙個job由多個stage組成。乙個stage由多個沒有shuffle關係的task組成。
1、job提交前:
spark應用程式進行各種transformation的計算,最後通過action觸發job(延遲執行)。
2、提交job,劃分stage:
job提交之後首先通過sparkcontext根據rdd的依賴關係構建dag圖,dag圖提交給dagscheduler進行解析,解析時是以shuffle為邊界,反向解析,構建stage,stage之間也有依賴關係。這個過程就是對dag圖進行解析劃分stage,並且計算出各個stage之間的依賴關係。
3、任務排程與分發:
將乙個個taskset提交給底層排程器,在spark中是提交給taskscheduler處理,生成taskset manager,最後提交給executor進行計算,executor多執行緒計算,計算完反饋給tasksetmanager,再反饋給taskscheduler,然後再反饋回dagscheduler。全部執行完之後寫入資料。
Spark執行架構
在driver program中新建sparkcontext 包含sparkcontext的程式稱為driver program 2 sparkcontext向資源管理器申請執行executor資源,並啟動standaloneexecutorbackend,executor向sparkcontent...
Spark執行架構
spark執行架構要背下來 driver program 執行main函式的程序,並且建立了乙個sparkcontext cluster manager 乙個從cluster申請資源的外部服務 deploy mode 區分driver程序跑在 client模式下,driver跑在本地 cluster...
Spark執行架構
1.基本概念 rdd 是resillient distributed dataset 彈性分布式資料集 的簡稱,是分布式記憶體的乙個抽象概念,提供了一種高度受限的共享記憶體模型 dag 是directed acyclic graph 有向無環圖 的簡稱,反映rdd之間的依賴關係 executor 是...