MR架構 MR工作流程

2021-08-06 06:36:33 字數 1590 閱讀 1065

一、mr的架構

1、簡介:mapreduce

是乙個軟體框架,基於該框架能夠容易地編寫應用程式,這些應用程式能夠執行在由上千個商用機器組成的大集群上,並以一種可靠的,具有容錯能力的方式並行地處理上

tb級別的海量資料集

2、4個物件:

客戶端:

編寫mapreduce

程式,配置作業,提交作業,這就是程式設計師完成的工作;

jobtracker

:初始化作業,分配作業,與

tasktracker

通訊,協調整個作業的執行;

tasktracker

:保持與

jobtracker

的通訊,在分配的資料片段上執行

map或

reduce

任務,tasktracker

和jobtracker

的不同有個                               很重要的方面,就是在執行任務時候

tasktracker

可以有n

多個,jobtracker

則只會有乙個

hdfs

:儲存作業的資料、配置資訊等等,最後的結果也是儲存在

hdfs

上面二、mapreduced的工作流程

輸入分片(inputsplit):在進行

map計算之前,

mapreduce

會根據輸入檔案計算輸入分片(

input split

),每個輸入分片(

input split

)針對乙個

map任務;儲存的並非資料本身,而是乙個分片長度和乙個記錄資料的位置的陣列,輸入分片(input split

)往往和

hdfs

的block

(塊)關係很密切

map階段:程式設計師編寫好的

map函式了,因此

map函式效率相對好控制,而且一般

map操作都是本地化操作也就是在資料儲存節點上進行;

combiner階段:combiner

階段是程式設計師可以選擇的,

combiner

其實也是一種

reduce

操作,因此我們看見

wordcount

類裡是用

reduce

進行載入的

shuffle階段:

map的輸出作為

reduce

的輸入的過程就是

shuffle

reduce階段:

和map

函式一樣也是程式設計師編寫的,最終結果是儲存在

hdfs

上的。

MR執行流程

在這裡插入描述 資料進入maptask使用inputformat讀取資料 預設讀取格式是textinputformat 使用getsplits對資料目錄進行邏輯切分得到splits,有多少個splits 切片 就有多少個maptask 使用recordreader物件讀取 使用設定好的分隔符 切片裡...

MR1和MR2的工作原理

1 客戶端向jobtracker請求乙個新的作業id 通過jobtracker的getnewjobid 方法獲取,見第2步 2 計算作業的輸入分片,將執行作業所需要的資源 包括jar檔案 配置檔案和計算得到的輸入分片 複製到乙個以id命名的jobtracker的檔案系統中 hdfs 見第3步 3 告...

mr 執行在yarn集群流程分析

rm返回給其資源提交的路徑以及job的id號,staging jobid構成乙個job的唯一資源提交路徑,將job.split job.xml jar包提交到此路徑上面去,job資源提交完畢,rm將其分裝為乙個task,rm可能會處理多個task,所以需要資源排程,其主要有三種方式 fair 公平每...