spark的執行流程 原始碼解說

2021-09-12 13:41:28 字數 1350 閱讀 4420

1>spark的作業主要是由rdd的action所觸發作業的提交,根據提交作業構建dag圖。將作業提交給sparkcontxt,在sparkcontext會建立2個重要元件,乙個是dagscheduler和taskscheduler組件。最終運行sc.runjob將作業提交給dagscheduler

2>dagscheduler會根據dag圖進行stage的劃分

劃分原理:dagscheduler呼叫handlejob.submit方法=>在該方法中根據dag圖尋找到最後乙個finaldd,=>以最後乙個rdd為起點,去遍歷rdd生命線,在遍歷的過程中查找是否存在shufflerdd(如果存在就進行作為stage的劃分依據)=》直到遍歷到第乙個rdd為止 =>stage劃分完之後=>建立stage和stage的依賴關係,並放到list的集合中,作為後續排程的依據

3>dagscheduler將每個stage劃分為多個task(按照分割槽劃分),並給出每個task執行的首選位置,將這些task封裝為taskset

4>dagscheduler將這些已經封裝好的taskset傳送給taskscheduler,taskscheduler會將這些taskset放入到taskset緩衝遲中,其實現類taskschedulerimpl會建立tasksetmanager來進行管理taskset(主要管理taskset的生命週期) taskscheduler會呼叫resourceoffers方法,將tasksetmanager進行乙個排序,以便進行資源的分配,同時呼叫schduledbacked方法,在該方法中與driverendpoint端點通訊=>獲取可用的executor列表

5>在具備4條件,taskscheduler將taskset傳送到對應的exeutor上去執

6>executor在接受到taskscheduler下發的任務,會呼叫自生的executor.lunchtask方法執行任務,最終呼叫task.runtask方法

7>對於執行完的任務,存在2種結果resulttask(將結果資料返回給driver),shufflemaptask(會將資料進行乙個儲存,一遍下游的使用)

Spark原始碼分析之AM端執行流程(Driver)

spark submit master yarn deploy mode cluster class org.apache.spark.examples.sparkpi usr local spark 2.4.3 bin hadoop2.7 examples jars spark examples ...

Tomcat原始碼執行流程解讀

1 tomcat架構圖 開局一張圖,內容全靠編。2 從tomcat架構圖可以看出tomcat的本質就是乙個伺服器 server 然後下面有多個服務 service 每個服務下面又包含多個聯結器 connector connector是連線外部網路的紐帶。engine這個引擎下面又有多個host,而h...

Spark執行流程

四個步驟 1.構建dag 呼叫rdd上的運算元 2.dagscheduler將dag切分stage 切分的依據是shuffle 將stage中生成的task以taskset的形式給taskscheduler 3.taskscheduler排程task 根據資源情況將task排程到相應的executo...