MapReduce工作機制

2021-09-22 18:26:47 字數 671 閱讀 5370

呼叫job的submit()方法執行mapreduce作業,也可以呼叫waitforcompletion(),它用於提交以前沒有提交的作業並等待它的完成。

job的submit()方法建立乙個內部的jobsummiter例項,並呼叫submitjobinternal()方法。提交作業後,waitforcompletion()輪詢作業進度。

jobsummiter(client)實現作業提交過程:

當任務執行小於新的容器分配和執行任務開銷時,不需要申請容器。

儲存該資料塊的三個複本的節點

儲存這些複本的機架中的乙個節點

申請集群中的任意節點

乙個作業和它的每個任務都有乙個狀態(status),包括:作業或任務的狀態(執行中,成功完成,失敗),map和reduce進度,作業計數器的值,狀態訊息或描述。

mapreduce確保每個reducer的輸入都是按鍵排序的。系統執行排序,將map輸出作為輸入傳遞給reducer的過程稱為shuffle。

每個map任務有乙個環形記憶體緩衝區,預設大小100m。

首先根據設計的分割槽將資料劃分成相應的分割槽

當緩衝區內容達到閾值(預設0.8),將內容溢位(spill)到磁碟

map寫完資料後,有多個溢位檔案,則將溢位檔案合併成乙個已分割槽已排序的輸出檔案

reducer通過http得到輸出檔案的分割槽

MapReduce工作機制總結

總結從mapreduce程式中的jobclient.runjob conf 開始,給出了mapreduce執行的流程圖 如下 並分析了流程圖中的四個核心實體,結合實際 介紹了mapreduce執行的詳細流程。mapreduce的執行流程簡單概括如下 介紹完mapreduce作業的詳細流程後,還重點介...

MapReduce工作機制總結

總結從mapreduce程式中的jobclient.runjob conf 開始,給出了mapreduce執行的流程圖 如下 並分析了流程圖中的四個核心實體,結合實際 介紹了mapreduce執行的詳細流程。mapreduce的執行流程簡單概括如下 介紹完mapreduce作業的詳細流程後,還重點介...

大資料之MapReduce工作機制

mapreduce分布式計算系統,搭配yarn集群配合實現大資料計算任務。我們這裡不講mapreduce的 具體實現,而是講mapreduce的執行機制以及它的一些核心思想。了解了這些其實 都很簡單,只要有一些程式設計基礎的人都會寫得出那些 無非就是一堆檔案的內容進行分解整合變換的過程 mapred...