图解yarn的作业提交流程
YARN的作業提交機制
作業提交全過程詳解
(1)作業提交
第 1 步:Client 調用 job.waitForCompletion 方法,向整個集群提交 MapReduce 作業。
第 2 步:Client 向 RM 申請一個作業 id。
第 3 步:RM 給 Client 返回該 job 資源的提交路徑和作業 id。
第 4 步:Client 提交 jar 包、切片信息和配置文件到指定的資源提交路徑。
第 5 步:Client 提交完資源后,向 RM 申請運行 MrAppMaster。
(2)作業初始化
第 6 步:當 RM 收到 Client 的請求后,將該 job 添加到容量調度器中。
第 7 步:某一個空閑的 NM 領取到該 Job。
第 8 步:該 NM 創建 Container,并產生 MRAppmaster。
第 9 步:下載 Client 提交的資源到本地。
(3)任務分配
第 10 步:MrAppMaster 向 RM 申請運行多個 MapTask 任務資源。
第 11 步:RM 將運行 MapTask 任務分配給另外兩個 NodeManager,另兩個 NodeManager 分別領取任務并創建容器。
(4)任務運行
第 12 步:MR 向兩個接收到任務的 NodeManager 發送程序啟動腳本,這兩個 NodeManager 分別啟動 MapTask,MapTask 對數據分區排序。
第13步:MrAppMaster等待所有MapTask運行完畢后,向RM申請容器,運行ReduceTask。
第 14 步:ReduceTask 向 MapTask 獲取相應分區的數據。
第 15 步:程序運行完畢后,MR 會向 RM 申請注銷自己。
(5)進度和狀態更新
YARN 中的任務將其進度和狀態(包括 counter)返回給應用管理器, 客戶端每秒(通過 mapreduce.client.progressmonitor.pollinterval 設置)向應用管理器請求進度更新, 展示給用戶。
(6)作業完成
總結
以上是生活随笔為你收集整理的图解yarn的作业提交流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这些行业高薪职位最多
- 下一篇: 数字图像处理:实验八 遥感图像增强