初步了解批處理計(jì)算_第1頁(yè)
初步了解批處理計(jì)算_第2頁(yè)
初步了解批處理計(jì)算_第3頁(yè)
初步了解批處理計(jì)算_第4頁(yè)
初步了解批處理計(jì)算_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

初步了解批處理計(jì)算學(xué)習(xí)目標(biāo)2知識(shí)目標(biāo)●什么是批處理計(jì)算●MapReduce概述能力目標(biāo)●了解批處理計(jì)算●熟知分布式計(jì)算框架學(xué)習(xí)任務(wù)3了解批處理計(jì)算初步探索分布式計(jì)算框架初步探索Map、Reduce函數(shù)掌握分布式計(jì)算框架什么是批處理計(jì)算MapReduce概述4Map、Reduce函數(shù)目錄什么是批處理計(jì)算5針對(duì)大規(guī)模數(shù)據(jù)的批量處理?!鬗apReduce可以并行執(zhí)行大規(guī)模數(shù)據(jù)處理任務(wù),用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算(單輸入、兩階段、粗粒度數(shù)據(jù)并行的分布式框架)。它將復(fù)雜的、運(yùn)行于大規(guī)模集群上的并行計(jì)算過程高度抽象到了兩個(gè)函數(shù)——Map和Reduce,并把一個(gè)大數(shù)據(jù)集切分成多個(gè)小數(shù)據(jù)集,分布到不同的機(jī)器上進(jìn)行并行處理,極大地方便了分布式編程工作。在MapReduce中,數(shù)據(jù)流從一個(gè)穩(wěn)定的來源,進(jìn)行一系列加工處理后,流出到一個(gè)穩(wěn)定的文件系統(tǒng)(如HDFS)。6◆Spark是一個(gè)針對(duì)超大數(shù)據(jù)集合的低延遲的集群分布式計(jì)算系統(tǒng)。它啟用了內(nèi)存分布數(shù)據(jù)集,可以提供交互式查詢、優(yōu)化迭代工作負(fù)載。在MapReduce中,數(shù)據(jù)流從一個(gè)穩(wěn)定的來源,進(jìn)行一系列加工處理后,流出到一個(gè)穩(wěn)定的文件系統(tǒng)(如HDFS)。而Spark則用內(nèi)存替代HDFS或本地磁盤來存儲(chǔ)中間結(jié)果,因此要快很多。什么是批處理計(jì)算7MapReduce概述MapReduce是一種編程模型(也稱為計(jì)算模型),用以大數(shù)據(jù)量地批處理計(jì)算。(如MapReduce處理示例圖所示),MapReduce的思想是將批量處理的任務(wù)主要分成兩個(gè)階段(Map和Reduce階段),所謂的Map階段就是把數(shù)據(jù)生成“鍵-值”對(duì),按鍵排序。中間有一步叫shuffle,把同樣的key運(yùn)輸至同個(gè)reducer上面去。在reducer上,因?yàn)槎际峭粋€(gè)key,就直接可以做聚合(算出總和),最后把結(jié)果輸出到HDPS上。對(duì)于應(yīng)用開發(fā)者來說,你需要做的就是編寫Map和Reduce函數(shù),像中間的排序,shuffle網(wǎng)絡(luò)傳輸、容錯(cuò)處理等,框架已經(jīng)幫你做好了。8MapReduce概述MapReduce處理示例MapReduce的思想和人口普查的做法類似。人口普查委員會(huì)給每個(gè)城市分配人口普查工作人員(Map任務(wù)),所有人員并行地統(tǒng)計(jì)當(dāng)?shù)氐娜丝跀?shù)據(jù),最后各個(gè)人員的統(tǒng)計(jì)數(shù)據(jù)歸約(Reduce任務(wù))到總的人口普查數(shù)字。(如MapReduce處理示例圖所示),是計(jì)算各個(gè)單詞出現(xiàn)的次數(shù)。9MapReduce概述MapReduce通常將輸入的數(shù)據(jù)集分割為一些獨(dú)立的數(shù)據(jù)塊(splitting步驟),然后由一些Map任務(wù)(task)在服務(wù)器集群上以完全并行的方式進(jìn)行處理,這些Map任務(wù)的計(jì)算結(jié)果最后通過Reduce任務(wù)合并在一起來計(jì)算最終的結(jié)果。具體來說,Map對(duì)數(shù)據(jù)進(jìn)行指定的操作,生成“鍵-值”對(duì)形式的中間結(jié)果(Mapping步驟,“Deer,1”就是一個(gè)鍵值對(duì),這個(gè)中間結(jié)果-般存放在文件系統(tǒng)上)。MapReduce框架對(duì)中間結(jié)果按照鍵值排序(Shuffling步驟),Reduce則對(duì)中間結(jié)果中相同“鍵”的所有“值”進(jìn)行規(guī)約(Reducing步驟),以得到最終結(jié)果。最終結(jié)果一般也存放在文件系統(tǒng)上(如Final、result步驟)。MapReduce框架負(fù)責(zé)任務(wù)的調(diào)度和監(jiān)控,并重新執(zhí)行這些失敗的任務(wù)。MapReduce非常適合在大量計(jì)算機(jī)組成的分布式并行環(huán)境里進(jìn)行數(shù)據(jù)處理。10MapReduce概述如圖顯示了個(gè)MapReduce的使用場(chǎng)景,圖中各主要要素說明如下。11Map、Reduce函數(shù)◆Map函數(shù):接受一個(gè)“鍵-值”對(duì),產(chǎn)生一組中間“鍵值"對(duì)。MapReduce框架有sort(排序)和shuffle(發(fā)送)操作,sort會(huì)按照鍵來對(duì)map函數(shù)所產(chǎn)生的鍵-值對(duì)進(jìn)行排序(如圖MapReduce處理示例所示的排序結(jié)果),然后shuffle將所有具有相同鍵的“鍵-值”對(duì)發(fā)送給同一個(gè)reduce函數(shù)。12ClassMappermethodmap(Stringinput_key,Stringinput_value): //input_key:報(bào)紙文件名稱 //input_value:報(bào)紙文件foreachwordwininput_value: EmitIntermediate(w,”1”);//記錄每個(gè)詞的出現(xiàn)(出現(xiàn)次數(shù)為1)在上面的代碼中,map函數(shù)接收的鍵是文件名(假定文件名是日期,如:20190312則表明是2019年6月12日的人民日?qǐng)?bào)電子版文件),值是文件內(nèi)容,map函數(shù)逐個(gè)遍歷詞語(yǔ),每遇到一個(gè)詞w,就產(chǎn)生一個(gè)中間“鍵-值”對(duì)<w,”1”>,這個(gè)表示這個(gè)w詞出現(xiàn)了一次。Map、Reduce函數(shù)13◆Reduce函數(shù)接受一個(gè)鍵(一個(gè)詞),以及相關(guān)的一組值(這一組值是所有Map對(duì)于這個(gè)詞計(jì)算出來的頻數(shù)的一個(gè)集合),整個(gè)輸入數(shù)據(jù)也是一個(gè)“鍵-值”對(duì)。將這組值進(jìn)行合并產(chǎn)生一組規(guī)模更小的值(通常只有一個(gè)或零個(gè)值)。在我們這個(gè)例子中,是將值集合中的頻數(shù)進(jìn)行求和,然后記錄每個(gè)詞和這個(gè)詞出現(xiàn)的總頻數(shù)。Map、Reduce函數(shù)14ClassReducerMethodreduce(Stringoutput_key,Iteratorintermediate_value)://output_key:一個(gè)詞//intermediate_value:該詞對(duì)應(yīng)的所有出現(xiàn)次數(shù)的列表Intresult=0;Foreachvinintermediate_value:Result+=ParseInt(v);//次數(shù)累加Emit(AsString(result));//記錄最終累加結(jié)果Map、Reduce函數(shù)MapReduce將鍵相同(都是詞w)的“鍵-值”對(duì)傳給reduce函數(shù),這樣reduce函數(shù)接受的鍵就是單詞w,值是字符串“1”的列表(鍵為w的鍵-值對(duì)的個(gè)數(shù)),然后將這些“1”累加就得到單詞w的出現(xiàn)次數(shù)。最后存儲(chǔ)在HDFS上。15MapReduce支持C/C++、Java、Ruby、Perl和Python編程語(yǔ)言。開發(fā)人員可以使用MapReduce庫(kù)來創(chuàng)建任務(wù)。至于節(jié)點(diǎn)之間的通信和協(xié)調(diào),輸入數(shù)據(jù)集的切割,在不同機(jī)器之間的程序執(zhí)行調(diào)度,處理錯(cuò)誤等,這些都由框架完成,開發(fā)人員無須處理。Map和Reduce函數(shù)會(huì)自動(dòng)在多個(gè)服務(wù)器節(jié)點(diǎn)上自動(dòng)并行執(zhí)行。即使開發(fā)人員完全沒有并行和分布式系統(tǒng)的經(jīng)驗(yàn)和知識(shí),也能輕松地利用好大型分布式系統(tǒng)的資源。MapReduce革新

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論