spark任務提交流程挺複雜的,下面給乙個相對簡單的任務提交流程:
driver程序啟動以後,首先構建sparkcontext,sparkcontext主要包含兩部分:dagscheduler和taskscheduler
master接受到任務註冊資訊之後,根據自身資源呼叫演算法在spark集群的worker上啟動executor進
程,啟動後,executor反向註冊到taskscheduler
executor程序內部會維護乙個執行緒池,executor每接受到乙個task,都會用taskrunner封裝task,然後從執行緒池中取出乙個執行緒去執行tasktaskrunner主要包含兩種task;
shufflemap task和result task,除了最後乙個stage是resulttask外,其他的stage都是shufflemap task ,executor註冊到taskscheduler後,driver程序會對程式進行劃分,劃分成乙個或多個action;每個action就是乙個job;
dagscheduler通過stage劃分演算法對job進行劃分,每個stage建立乙個taskset;然後dagscheduler將task提交給taskscheduler去執行
Spark任務提交流程
建立sparkcontext物件,其中包含dagscheduler和taskscheduler executor內部會建立執行task的執行緒池,然後把啟動的executor反向註冊給driver dagscheduler負責把spark作業轉化成stage的dag,根據寬窄依賴切分stage,然後...
Spark任務提交流程
spark的任務執行流程沒有hadoop那麼繞,它的流程其實就是當你執行submit的的時候driver會和master進行互動,因為對於spark來說master是掌控集群資源的元件,和hadoop的yarn是一樣的作用,master會通知有資源的伺服器節點,去主動的和driver互動,這一步也叫...
Spark的作業提交流程簡介
這是自己讀取原始碼並結合他人的總結,寫的大概的流程,僅供參考 處理使用者的 jar 或者資源檔案,和日誌處理相關 iseventlogenabled eventlogdir eventlogcodec的初始化 初始化非同步監聽 bus livelistenerbus,監聽 spark 事件,用於 s...