spark的任務執行流程沒有hadoop那麼繞,它的流程其實就是當你執行submit的的時候driver會和master進行互動,因為對於spark來說master是掌控集群資源的元件,和hadoop的yarn是一樣的作用,master會通知有資源的伺服器節點,去主動的和driver互動,這一步也叫反向註冊,其實說的高大上,說白了就是讓伺服器子節點和driver去互動,master不參與了,不過在master通知伺服器子節點和driver反向註冊的時候,會通知它們啟動executor程序
而driver和子節點在反向註冊之後,driver會根據rdd,也叫彈性資料集,來構建乙個叫做dag有向無環圖的東西,同時driver自身裡面有兩個排程器,dag排程器,它的存在是將driver構成的dag又向無環圖,解析為多個stage,每乙個stage有被分解問多個task組成的taskset
這裡值得一提的是,乙個任務的提交組成了乙個job,乙個job裡stage的多少是這個job中rdd的血緣決定的,而taskset中task的多少是stage處理資料的切片多少決定的,也可以理解為是分割槽決定的,因為一般為了減少不必要的網路io和集群內部的機架感知機制,促使了預設情況下乙個分割槽對應乙個切片,乙個切片預設是乙個資料塊大小,就算自定義了那也是資料交換了所在分割槽而已
言歸正傳,dag排程器處理處的taskset會交給taskset排程器去和集群子節點互動去執行並監控task,當任務結束driver程序會自動關閉
Spark任務提交流程
spark任務提交流程挺複雜的,下面給乙個相對簡單的任務提交流程 driver程序啟動以後,首先構建sparkcontext,sparkcontext主要包含兩部分 dagscheduler和taskscheduler master接受到任務註冊資訊之後,根據自身資源呼叫演算法在spark集群的wo...
Spark任務提交流程
建立sparkcontext物件,其中包含dagscheduler和taskscheduler executor內部會建立執行task的執行緒池,然後把啟動的executor反向註冊給driver dagscheduler負責把spark作業轉化成stage的dag,根據寬窄依賴切分stage,然後...
Spark的作業提交流程簡介
這是自己讀取原始碼並結合他人的總結,寫的大概的流程,僅供參考 處理使用者的 jar 或者資源檔案,和日誌處理相關 iseventlogenabled eventlogdir eventlogcodec的初始化 初始化非同步監聽 bus livelistenerbus,監聽 spark 事件,用於 s...