spark任務的提交流程(yarn)
spark任務的提交流程(yarn)
spark一般都是部署到yarn上使用的,所以就說y問的最多的就是arn的提交流程,兩種模式最大的區別就是driver端的執行位置
Yarn Client模式
第一步,Driver端在任務提交的本地機上執行
第二步,Driver啟動之後就會和ResourceManager通訊,申請啟動一個ApplicationMaster
第三步,ResourceManager就會分配container容器,在合適的nodemanager上啟動ApplicationMaster,負責向ResourceManager申請Executor記憶體
第四步,ResourceManager接到
第五步,Executor程序啟動後會向Driver反向註冊,Executor全部註冊完成後Driver開始執行main函式
第六步,之後執行到Action運算元時,觸發一個Job,並根據寬依賴開始劃分stage,每個stage生成對應的TaskSet,之後將task分發到各個Executor上執行。
Yarn Cluster模式
第一步,在YARN Cluster模式下,任務提交後會和ResourceManager
第二步, 隨後ResourceManager分配container,在合適的NodeManager上啟動ApplicationMaster,此時的ApplicationMaster就是Driver。
第三步, Driver啟動後向ResourceManager申請Executor記憶體,ResourceManager接到ApplicationMaster的資源申請後會分配container,然後在合適的NodeManager上啟動Executor程序
第四步,Executor程序啟動後會向Driver反向註冊,Executor全部註冊完成後Driver
第五步,之後執行到Action運算元時,觸發一個Job,並根據寬依賴開始劃分stage,每個stage生成對應的TaskSet,之後將task分發到各個Executor上執行。