1. 程式人生 > 其它 >spark任務的提交流程(yarn)

spark任務的提交流程(yarn)

spark任務的提交流程(yarn

spark一般都是部署到yarn上使用的,所以就說y問的最多的就是arn的提交流程,兩種模式最大的區別就是driver端的執行位置

Yarn Client模式

第一步,Driver端在任務提交的本地機上執行

第二步,Driver啟動之後就會和ResourceManager通訊,申請啟動一個ApplicationMaster

第三步,ResourceManager就會分配container容器,在合適的nodemanager上啟動ApplicationMaster,負責向ResourceManager申請Executor記憶體

第四步,ResourceManager接到

ApplicationMaster的資源申請後會分配container,然後ApplicationMaster在資源分配指定的NodeManager上啟動Executor程序

第五步,Executor程序啟動後會向Driver反向註冊,Executor全部註冊完成後Driver開始執行main函式

第六步,之後執行到Action運算元時,觸發一個Job,並根據寬依賴開始劃分stage,每個stage生成對應的TaskSet,之後將task分發到各個Executor上執行。

Yarn Cluster模式

第一步,在YARN Cluster模式下,任務提交後會和ResourceManager

通訊申請啟動ApplicationMaster

第二步, 隨後ResourceManager分配container,在合適的NodeManager上啟動ApplicationMaster,此時的ApplicationMaster就是Driver

第三步, Driver啟動後向ResourceManager申請Executor記憶體,ResourceManager接到ApplicationMaster的資源申請後會分配container,然後在合適的NodeManager上啟動Executor程序

第四步,Executor程序啟動後會向Driver反向註冊,Executor全部註冊完成後Driver

開始執行main函式,

第五步,之後執行到Action運算元時,觸發一個Job,並根據寬依賴開始劃分stage,每個stage生成對應的TaskSet,之後將task分發到各個Executor上執行。