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

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論