這個是我在網上搬的:
原博客地址為:https://blog.csdn.net/xwc35047/article/details/78732738
上圖是client以spark-submit形式提交作業后,從作業DAG划分、stage提交、taskSet提交,到task執行過程。步驟圖上已經畫出來,這里描述一下。
client submit作業,通過反射invoke執行用戶代碼main函數。
submit作業后,開始啟動CoarseGrainedExecutorBackend和初始化SparkContext。
SparkContext初始化包括初始化監控頁面SparkUI、執行環境SparkEnv、安全管理器SecurityManager、stage划分及調度器DAGScheduler、task作業調度器TaskSchedulerImpl和與Executor通信的調度端CoarseGrainedSchedulerBackend。
DAGScheduler將作業划分后,依次提交stage對應的taskSet給TaskSchedulerImpl。
TaskSchedulerImpl會submit taskset給driver端的CoarseGrainedSchedulerBackend后端。
CoarseGrainedSchedulerBackend會一個一個的LaunchTask
在遠端的CoarseGrainedExecutorBackend接收到task提交event后,會調用Executor執行task
最終task是由TaskRunner的run方法內運行。
---------------------
作者:xwc35047
來源:CSDN
原文:https://blog.csdn.net/xwc35047/article/details/78732738
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
----------------------------------------------------
非常清晰明了。
以及這個比較草的