日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MapReduce作业提交流程

發布時間:2023/12/16 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MapReduce作业提交流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.作業提交

  • 提交作業 job 后,job.waitForCompletion(true)調用 monitorAndPrintJob()方法每秒輪詢 作業進度,如果發現自上次報告后有改變,便把進度報告給控制臺。Job 的 submit()方法 創建一個內部的 JobSubmitter 實例,并調用其 submitJobInternal 方法(步驟 1)。作業 完成后,如果成功,就顯示計數器;如果失敗,這將導致作業失敗的錯誤記錄到控制臺。
  • JobSubmitter 所實現的作業提交過程如下所述:

  • 向資 ResourceManager 源管理器請求一個新作業的 ID,用于 MapReduce 作業 ID。
  • 作業客戶端檢查作業的輸出說明,計算輸入分片 splits 并將作業資源(包括作業 Jar 包、 配置文件和分片信息)復制到 HDFS
  • 通過調用資源管理器上的 submitApplication()方法提交作業
  • 2.作業初始化

  • 資源管理器 ResourceManager 收到調用他的 submitApplication()消息后,便將請求傳 遞給調度器(scheduler)。調度器分配一個容器(Container),然后資源管理器在節點 管理器(NodeManager)的管理下載容器中啟動應用程序的 master 進程(步驟 5a 和 5b)
  • MapReduce 作業的 application master 是一個 Java 應用程序,它的主類是 MRAppMaster。 它對作業進行初始化:通過創建多個簿記對象以保持對作業進度的跟蹤,因為它將接受 來自任務的進度和完成報告(步驟 6)。
  • 接下來,它接受來自共享文件系統的在客戶端計算的輸入分片(步驟 7)。對每一個分 片創建一個 map 任務對象以及由 mapreduce. job.reduces 屬性確定的具體數量的 reduce 任務對象。
  • 3.任務分配

  • AppMaster 為該作業中的所有 map 任務和 reduce 任務向資源管理器請求容器。
  • 4.任務執行

  • 一旦資源管理器的調度器為任務分配了容器,AppMaster 就通過與節點管理器 NodeManager 通訊來啟動容器(步驟 9a 和 9b)。
  • 該任務由主類為 YarnChild 的 Java 應用程序執行。在它允許任務之前,首先將任務需要 的資源本地化,包括作業的配置、JAR 文件和所有來自分布式緩存的文件.
  • 最后運行 map 任務或 reduce 任務。
  • 5.進度和狀態更新

  • 在 YARN 下運行時,任務每 3 秒鐘通過 umbilical 接口向 APPMaster 匯報進度和狀態。客戶端每一秒鐘(通過 mapreduce.client. Progressmonitor.pollinterval 設置)查詢一次 AppMaster 以接收進度更新,通常 都會向用戶顯示。
  • 6.作業完成

  • 除了向 AppMaster 查詢進度外,客戶端每 5 秒還通過調用 Job 的 waitForCompletion() 來 檢 測 作 業 是 否 完 成 。 查 詢 的 間 隔 可 以 通 過 mapreduce.client.completion.pollinterval 屬 性 進 行 設 置 。 作 業 完 成 后 , AppMaster 和任務容器清理器工作狀態
  • 總結

    以上是生活随笔為你收集整理的MapReduce作业提交流程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。