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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

MapReduce作业提交流程

發(fā)布時(shí)間:2023/12/16 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MapReduce作业提交流程 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.作業(yè)提交

  • 提交作業(yè) job 后,job.waitForCompletion(true)調(diào)用 monitorAndPrintJob()方法每秒輪詢 作業(yè)進(jìn)度,如果發(fā)現(xiàn)自上次報(bào)告后有改變,便把進(jìn)度報(bào)告給控制臺(tái)。Job 的 submit()方法 創(chuàng)建一個(gè)內(nèi)部的 JobSubmitter 實(shí)例,并調(diào)用其 submitJobInternal 方法(步驟 1)。作業(yè) 完成后,如果成功,就顯示計(jì)數(shù)器;如果失敗,這將導(dǎo)致作業(yè)失敗的錯(cuò)誤記錄到控制臺(tái)。
  • JobSubmitter 所實(shí)現(xiàn)的作業(yè)提交過(guò)程如下所述:

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

  • 資源管理器 ResourceManager 收到調(diào)用他的 submitApplication()消息后,便將請(qǐng)求傳 遞給調(diào)度器(scheduler)。調(diào)度器分配一個(gè)容器(Container),然后資源管理器在節(jié)點(diǎn) 管理器(NodeManager)的管理下載容器中啟動(dòng)應(yīng)用程序的 master 進(jìn)程(步驟 5a 和 5b)
  • MapReduce 作業(yè)的 application master 是一個(gè) Java 應(yīng)用程序,它的主類是 MRAppMaster。 它對(duì)作業(yè)進(jìn)行初始化:通過(guò)創(chuàng)建多個(gè)簿記對(duì)象以保持對(duì)作業(yè)進(jìn)度的跟蹤,因?yàn)樗鼘⒔邮?來(lái)自任務(wù)的進(jìn)度和完成報(bào)告(步驟 6)。
  • 接下來(lái),它接受來(lái)自共享文件系統(tǒng)的在客戶端計(jì)算的輸入分片(步驟 7)。對(duì)每一個(gè)分 片創(chuàng)建一個(gè) map 任務(wù)對(duì)象以及由 mapreduce. job.reduces 屬性確定的具體數(shù)量的 reduce 任務(wù)對(duì)象。
  • 3.任務(wù)分配

  • AppMaster 為該作業(yè)中的所有 map 任務(wù)和 reduce 任務(wù)向資源管理器請(qǐng)求容器。
  • 4.任務(wù)執(zhí)行

  • 一旦資源管理器的調(diào)度器為任務(wù)分配了容器,AppMaster 就通過(guò)與節(jié)點(diǎn)管理器 NodeManager 通訊來(lái)啟動(dòng)容器(步驟 9a 和 9b)。
  • 該任務(wù)由主類為 YarnChild 的 Java 應(yīng)用程序執(zhí)行。在它允許任務(wù)之前,首先將任務(wù)需要 的資源本地化,包括作業(yè)的配置、JAR 文件和所有來(lái)自分布式緩存的文件.
  • 最后運(yùn)行 map 任務(wù)或 reduce 任務(wù)。
  • 5.進(jìn)度和狀態(tài)更新

  • 在 YARN 下運(yùn)行時(shí),任務(wù)每 3 秒鐘通過(guò) umbilical 接口向 APPMaster 匯報(bào)進(jìn)度和狀態(tài)。客戶端每一秒鐘(通過(guò) mapreduce.client. Progressmonitor.pollinterval 設(shè)置)查詢一次 AppMaster 以接收進(jìn)度更新,通常 都會(huì)向用戶顯示。
  • 6.作業(yè)完成

  • 除了向 AppMaster 查詢進(jìn)度外,客戶端每 5 秒還通過(guò)調(diào)用 Job 的 waitForCompletion() 來(lái) 檢 測(cè) 作 業(yè) 是 否 完 成 。 查 詢 的 間 隔 可 以 通 過(guò) mapreduce.client.completion.pollinterval 屬 性 進(jìn) 行 設(shè) 置 。 作 業(yè) 完 成 后 , AppMaster 和任務(wù)容器清理器工作狀態(tài)
  • 總結(jié)

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

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。