生活随笔
收集整理的這篇文章主要介紹了
spark的作业提交流程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Spark的任務提交方式實際上有兩種,分別是YarnClient模式和YarnCluster模式。
YarnClient模式
在 YARN Clinet 模式下,Driver 在任務提交的本地機器上運行;Driver 啟動后會和 ResourceManager 通訊申請啟動 ApplicationMaster;隨后 ResourceManager 分配 container,在合適的 NodeManager 上 啟動 ApplicationMaster,此時的 ApplicationMaster 的功能相當于一個 ExecutorLauncher,只負責向 ResourceManager 申請 Executor 內存;ResourceManager 接到 ApplicationMaster 的資源申請后會分配 container,然后 ApplicationMaster 在資源分配指定的 NodeManager 上 啟動 Executor 進程;Executor 進程啟動后會向 Driver 反向注冊,Executor 全部注冊完成后 Driver 開始執行 main函數;之后執行到 Action 算子時,觸發一個 job ,并根據 寬依賴 開始劃分 stage,每個stage生成對應的 taskset,之后將 task 分發到各個 Executor 上執行。
YarnCluster模式
在 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 上執行。
總結
以上是生活随笔為你收集整理的spark的作业提交流程的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。