在HDFS系列完結(jié)之后,小伙伴們期待的MapReduce系列已經(jīng)在向大家揮手了。本篇博客,小菌將為大家?guī)鞰apReduce的入門介紹! 在正式開始之前,讓我們通過一張圖片回顧一下Hadoop的組成部分,以及每部分的作用!
接下來我們正式進(jìn)入到MapReduce的講解中 分布式并行計算框架MapReduce什么是計算框架?是指實現(xiàn)某項任務(wù)或某項工作從開始到結(jié)束的計算過程或流的結(jié)構(gòu)。 MapReduce具體的計算框架分布如下所示: 什么是并行計算框架?一個大的任務(wù)拆分成多個小任務(wù),將多個小任務(wù)分發(fā)到多個節(jié)點(diǎn)上。每個節(jié)點(diǎn)同時執(zhí)行計算。 Hadoop為什么比傳統(tǒng)技術(shù)方案快這個問題小菌在介紹大數(shù)據(jù)的時候就已經(jīng)談到過。大致分為下面幾個步驟!
MapReduce核心思想分而治之,先分后和:將一個大的、復(fù)雜的工作或任務(wù),拆分成多個小的任務(wù),并行處理,最終進(jìn)行合并。 MapReduce由Map和Reduce組成 Reduce:對數(shù)據(jù)進(jìn)行匯總,即對map階段的結(jié)果進(jìn)行全局匯總。 Hadoop -MapReduce設(shè)計構(gòu)思 MapReduce是一個分布式運(yùn)算程序的編程框架,核心功能是將用戶編寫的業(yè)務(wù)邏輯代碼和自帶默認(rèn)組件整合成一個完整的分布式運(yùn)算程序,并發(fā)運(yùn)行在Hadoop集群上。 如何應(yīng)對大數(shù)據(jù)處理:分而治之對相互間不具有計算依賴關(guān)系的大數(shù)據(jù),實現(xiàn)并行最自然的辦法就是采取分而治之的策略。并行計算的第一個重要問題是如何劃分計算任務(wù)或者計算數(shù)據(jù)以便對劃分的子任務(wù)或數(shù)據(jù)塊同時進(jìn)行計算。不可分拆的計算任務(wù)或相互間有依賴關(guān)系的數(shù)據(jù)無法進(jìn)行并行計算! 構(gòu)建抽象模型:Map和Reduce MapReduce借鑒了函數(shù)式語言中的思想,用Map和Reduce兩個函數(shù)提供了高層的并行編程抽象模型。
統(tǒng)一構(gòu)架,隱藏系統(tǒng)層細(xì)節(jié) 如何提供統(tǒng)一的計算框架,如果沒有統(tǒng)一封裝底層細(xì)節(jié),那么程序員則需要考慮諸如數(shù)據(jù)存儲、劃分、分發(fā)、結(jié)果收集、錯誤恢復(fù)等諸多細(xì)節(jié);為此,MapReduce設(shè)計并提供了統(tǒng)一的計算框架,為程序員隱藏了絕大多數(shù)系統(tǒng)層面的處理細(xì)節(jié)。 |
|