自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

大數(shù)據(jù)核心框架MapReduce過(guò)程解析

大數(shù)據(jù)
首先MapReduce很明顯是分為Map階段和Reduce階段。兩個(gè)階段分別做什么呢?小編自己畫了個(gè)圖,大家共勉一下,請(qǐng)看正文。

首先MapReduce很明顯是分為Map階段和Reduce階段。兩個(gè)階段分別做什么呢?

小編自己畫了個(gè)圖,大家共勉一下

 

大數(shù)據(jù)核心框架MapReduce過(guò)程解析

圖中1-2過(guò)程為map過(guò)程,3為Reduce過(guò)程,接下來(lái)看一張專業(yè)圖片,兩張對(duì)比一起看

 

大數(shù)據(jù)核心框架MapReduce過(guò)程解析

在整個(gè)mapReduce過(guò)程包含很多復(fù)雜的處理過(guò)程,而我們要學(xué)習(xí)的就是其中幾個(gè)過(guò)程包含,Split過(guò)程、Partitione過(guò)程還有Shuffle過(guò)程,舉一個(gè)實(shí)例的話

假設(shè)我們手上有很多復(fù)雜數(shù)據(jù),那么怎樣來(lái)處理呢? 第一步就是分類,把數(shù)據(jù)分類。 分類后的數(shù)據(jù)就不復(fù)雜了,這就是異而化同。 分類之后數(shù)據(jù)還是很多,怎么辦呢? 第二步,分割。 分割就是把數(shù)據(jù)切分成小塊, 這樣就可以并發(fā)或者批量處理了, 這就是大而化小。

回到 map-reduce概念上, map的工作就是切分?jǐn)?shù)據(jù),然后給他們分類,分類的方式就是輸出key,value對(duì),key就是對(duì)應(yīng)“類別”了。 分類之后,reducer拿到的都是同類數(shù)據(jù),這樣處理就很容易了。

大數(shù)據(jù)一般采用的HDFS 解決了大數(shù)據(jù)存儲(chǔ)的問題,那么 MapReduce 自然要解決的是數(shù)據(jù)計(jì)算問題在處理大數(shù)據(jù)計(jì)算中,一臺(tái)機(jī)器是無(wú)法滿足大批量數(shù)據(jù)計(jì)算的,這個(gè)時(shí)候就需要使用MapReduce,MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集的并行計(jì)算,需要將數(shù)據(jù)分配到大量的機(jī)器上計(jì)算,每臺(tái)機(jī)器運(yùn)行一個(gè)子計(jì)算任務(wù),最后再合并每臺(tái)機(jī)器運(yùn)算結(jié)果并輸出。 MapReduce 的思想就是 『分而治之』

MapReduce 將整個(gè)并行計(jì)算過(guò)程抽象到兩個(gè)函數(shù),在 Map 中進(jìn)行數(shù)據(jù)的讀取和預(yù)處理,之后將預(yù)處理的結(jié)果發(fā)送到 Reduce 中進(jìn)行合并。一個(gè)簡(jiǎn)單的 MapReduce 程序只需要指定 map()、reduce()、 input 和output,剩下的事由框架完成。

Map ( 映射 ) : 對(duì)一些獨(dú)立元素組成的列表的每一個(gè)元素進(jìn)行指定的操作,可以高度并行。

Reduce( 化簡(jiǎn) ) : 對(duì)一個(gè)列表的元素進(jìn)行合并。

MapReduce執(zhí)行流程

以經(jīng)典的 WordCount 的例子來(lái)說(shuō)明一下MapReduce的執(zhí)行流程,WordCount就是統(tǒng)計(jì)每個(gè)單詞出現(xiàn)的次數(shù)。

 

大數(shù)據(jù)核心框架MapReduce過(guò)程解析

MapReduce計(jì)算框架的一般流程有以下幾個(gè)步驟:

輸入 ( Input ) 和拆分 ( Split ):

對(duì)數(shù)據(jù)進(jìn)行分片處理。將源文件內(nèi)容分片成一系列的 InputSplit,每個(gè) InputSplit 存儲(chǔ)著對(duì)應(yīng)分片的數(shù)據(jù)信息,記住是對(duì)文件內(nèi)容進(jìn)行分片,并不是將源文件拆分成多個(gè)小文件。

迭代 ( iteration ):

遍歷輸入數(shù)據(jù),并將之解析成 key/value 對(duì)。拆分?jǐn)?shù)據(jù)片經(jīng)過(guò)格式化成鍵值對(duì)的格式,其中 key 為偏移量,value 是每一行的內(nèi)容,這一步由MapReduce框架自動(dòng)完成。

映射 ( Map ):

將輸入 key/value 對(duì)映射 ( map ) 成另外一些 key/value 對(duì)。MapReduce 開始在機(jī)器上執(zhí)行 map 程序,map 程序的具體實(shí)現(xiàn)由我們自己定義,對(duì)輸入的 key/value 進(jìn)行處理,輸出新的 key/value,這也是hadoop 并行事實(shí)發(fā)揮作用的地方。

洗牌 ( Shuffer ) 過(guò)程:

依據(jù) key 對(duì)中間數(shù)據(jù)進(jìn)行分組 ( grouping )。這是一個(gè)洗牌的過(guò)程,得到map方法輸出的 對(duì)后,Mapper 會(huì)將它們按照 key 值進(jìn)行處理,這包括 sort (排序)、combiner (合并)、partition (分片) 等操作達(dá)到排序分組和均衡分配,得到 Mapper 的最終輸出結(jié)果交給 Reducer。mapper 和 reducer 一般不在一個(gè)節(jié)點(diǎn)上,這就導(dǎo)致了reducer 需要從不同的節(jié)點(diǎn)上下載數(shù)據(jù),經(jīng)過(guò)處理后才能交給 reducer 處理。

歸并( Reduce ):

以組為單位對(duì)數(shù)據(jù)進(jìn)行歸約 ( reduce )。Reducer 先對(duì)從 Mapper 接收的數(shù)據(jù)進(jìn)行排序,再交由用戶自定義的 reduce方法進(jìn)行處理。

迭代:

將最終產(chǎn)生的 key/value 對(duì)保存到輸出文件中。得到新的 對(duì),保存到輸出文件中,即保存在 HDFS 中。

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2011-08-10 11:16:00

Platform

2020-10-26 07:05:02

大數(shù)據(jù)管道編排編排框架

2015-08-18 09:47:13

2023-11-30 11:39:52

Rust生態(tài)框架

2024-06-13 08:10:18

2012-08-08 09:53:23

HadoopMapReduce

2018-03-28 17:16:09

大數(shù)據(jù)

2018-12-07 14:50:35

大數(shù)據(jù)數(shù)據(jù)采集數(shù)據(jù)庫(kù)

2013-03-01 10:46:50

大數(shù)據(jù)核心海量數(shù)據(jù)

2012-03-12 10:09:50

Hadoop微軟大數(shù)據(jù)

2015-08-11 15:52:52

大數(shù)據(jù)數(shù)據(jù)分析

2013-08-14 09:48:02

微軟REEF

2019-02-20 23:06:56

大數(shù)據(jù)數(shù)據(jù)語(yǔ)言

2021-05-09 15:32:50

大數(shù)據(jù)架構(gòu)大數(shù)據(jù)數(shù)據(jù)

2022-07-14 09:24:28

大數(shù)據(jù)技術(shù)

2020-01-09 10:47:15

HDFS數(shù)據(jù)文件

2015-03-25 17:24:48

大數(shù)據(jù)時(shí)代大數(shù)據(jù)數(shù)據(jù)資產(chǎn)

2013-01-21 13:22:56

IBMdW

2015-09-11 13:54:51

大數(shù)據(jù)關(guān)鍵技術(shù)

2015-09-15 14:44:37

大數(shù)據(jù)核心問題
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)