Hadoop學習之六 MapReduce原理

2022-07-30 17:51:12 字數 1434 閱讀 8050

一、概念

mapreduce:

"相同"的key為一組,呼叫一次reduce方法,方法內迭代這一組資料進行計算

塊、分片、map、reduce、分組、分割槽之間對應關係

block > split

1:1:1個block可以切成1個分片

n:1:多個block可以以切成1個分片

1:n:1個block可以切成多個分片

split > map

1:1:乙個分片只能產生乙個map

map > reduce

n:1:多個map可以對應一次reduce

n:n:多個map可以對應多次reduce

1:1:1個map可以對應1次reduce

1:n:1個map可以對應多次reduce

group(key)>partition

1:1:1次分組可以對應1個分割槽

n:1:多個分組可以對應乙個分割槽

n:n:多個分組可以對應多個分割槽

1:n? >違背了原語

(1)對於乙個分片,載入到記憶體進行map處理,

(2)map業務邏輯將分片中資料處理成乙個個的k,v鍵值對

(3)將map輸出的k,v鍵值對加工,生成含有分割槽partition的k,v,p鍵值對

(4)經過一段時間的處理,將生成的kvp資料放到快取裡(預設100m),然後按照分割槽p,鍵key排序,最終形成乙個內部有序外部無序的100m檔案

(5)將這個100m快取輸出到本地檔案系統裡,經過map處理完成後,最終生成一堆這樣的小檔案

(6)將這一堆小檔案進行歸併形成乙個內部有序外部無序的大檔案

(1)將各個節點歸併後的大檔案中拉取(shuffler)屬於同一分割槽的檔案

這個地方會產生網路io,map之後的檔案如果很大會影響效能,因此可以對map之後的資料進行簡單統計 降低拉取檔案的大小

(2)將拉過來的小檔案進行歸併,reduce的歸併強依賴map的排序結果

(3)將合併的檔案呼叫reduce

弊端:job tracker有兩件事:任務排程和監控整個集群資源負載,存在單點故障、負載過重、資源管理和計算排程強耦合

因此有了hadoop 2.x的yarn

hadoop系統 分布式計算框架MapReduce

單機程式計算流程 輸入資料 讀取資料 處理資料 寫入資料 輸出資料 hadoop計算流程 input data 輸入資料 inputformat 對資料進行切分,格式化處理 map 將前面切分的資料做map處理 將資料進行分類,輸出 k,v 鍵值對資料 shuffle sort 將相同的資料放在一起...

Hadoop學習之安裝Hadoop

1.用xftp工具將hadoop 2.7.2.tar.gz匯入到opt目錄下面的software資料夾 2.進入到hadoop安裝包路徑下 cd opt software 3.解壓安裝檔案到 opt module下面 tar zxvf hadoop 2.7.2.tar.gz c opt module...

大資料Hadoop學習六

1 hadoop的改進 hadoop 1.0到2.0的改進分為mapreduce和hdfs架構的演進。另一方面,不斷加入kafka,spark,pig,tez等新的元件。hadoop2.0 針對hdfs涉及了hdfs ha,提供名稱節點的熱備份 設計了hdfs federation管理多個命名空間 ...