MapReduce 2.0應用場景、原理與基本架構培訓課件_第1頁
MapReduce 2.0應用場景、原理與基本架構培訓課件_第2頁
MapReduce 2.0應用場景、原理與基本架構培訓課件_第3頁
MapReduce 2.0應用場景、原理與基本架構培訓課件_第4頁
MapReduce 2.0應用場景、原理與基本架構培訓課件_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Open Passion ValueMapReduce

2.0應用場景、原理與基本架構目錄MapReduce的應用場景MapReduce編程模型MapReduce的架構常見MapReduce應用場景總結2MapReduce的定義3源自于Google的MapReduce論文發(fā)表于2004年12月Hadoop

MapReduce是Google

MapReduce克隆版MapReduce特點易于編程良好的擴展性高容錯性適合PB級以上海量數據的離線處理MapReduce的特色—不擅長的方面實時計算像MySQL一樣,在毫秒級或者秒級內返回結果流式計算MapReduce的輸入數據集是靜態(tài)的,不能動態(tài)變化MapReduce自身的設計特點決定了數據源必須是靜態(tài)的DAG計算多個應用程序存在依賴關系,后一個應用程序的輸入為前一個的輸出4目錄MapReduce的應用場景MapReduce編程模型MapReduce的架構常見MapReduce應用場景總結5MapReduce的實例—Wordcount6場景:有大量文件,里面存儲了單詞,且一個單詞占一行任務:如何統(tǒng)計每個單詞出現的次數?類似應用場景:搜索引擎中,統(tǒng)計最流行的K個搜索詞;統(tǒng)計搜索詞頻率,幫助優(yōu)化搜索詞提示MapReduce的實例—Wordcount7Case

1:整個文件可以加載到內存中;sortdatafile|uniq

-cCase

2:文件太大不能加載到內存中,但<word,

count>可以存放到內存中;Case

3:文件太大無法加載到內存中,且<word,

count>也不行MapReduce的實例—Wordcount將問題范化為:有一批文件(規(guī)模為TB級或者

PB級),如何統(tǒng)計這些文件中所有單詞出現的次數;方案:首先,分別統(tǒng)計每個文件中單詞出現次數,然后累加不同文件中同一個單詞出現次數;典型的MapReduce過程。8MapReduce編程模型—WordCount9MapReduce編程模型—WordCount10Input:

一系列key/value對用戶提供兩個函數實現:map(k,v)

list(k1,v1)reduce(k1,list(v1))

v2(k1,v1)

是中間key/value結果對Output:一系列(k2,v2)對MapReduce編程模型—WordCount11map(key,

value)://key:documentname;value:textofdocumentforeachwordwin

value:emit(w,

1)reduce(key,

values)://key:aword;values:aniteratorovercountsresult=

0foreachcountvin

values:result+=

vemit(key,result)MapReduce編程模型12MapReduce將作業(yè)的整個運行過程分為兩個階段:Map階段和Reduce階段Map階段由一定數量的Map

Task組成輸入數據格式解析:InputFormat輸入數據處理:Mapper數據分組:PartitionerReduce階段由一定數量的Reduce

Task組成數據遠程拷貝數據按照key排序數據處理:Reducer數據輸出格式:OutputFormatMapReduce編程模型—內部邏輯Split

0Split

1Split

2Split

3MapperRead(Inputformat)MapperRead(Inputformat)MapperRead(Inputformat)MapperRead(Inputformat)a1b1Partitionerc1c1Partitionera1c1Partitionerb1b1PartitionerShuffle&

Sorta1a1Reducerb1b1Reducerb1c1c1Reducerc1Part-0Part-1Part-2Map階段Write(Outputformat)Write(Outputformat)Reduce階段Shuffle&

SortShuffle&

SortHDFSHDFSMapTaskReduceTaskWrite(Outputformat)13MapReduce編程模型—外部物理結構14MapReduce編程模型—InputFormat文件分片(InputSplit)方法處理跨行問題將分片數據解析成key/value對默認實現是TextInputFormatTextInputFormatKey是行在文件中的偏移量,value是行內容若行被截斷,則讀取下一個block的前幾個字符15MapReduce編程模型—Split與BlockBlockHDFS中最小的數據存儲單位默認是64MBSpitMapReduce中最小的計算單元默認與Block一一對應Block與SplitSplit與Block是對應關系是任意的,可由用戶控制16MapReduce編程模型—InputFormat17MapReduce編程模型—Combiner1819MapReduce編程模型—CombinerCombiner可做看local

reducer合并相同的key對應的value(wordcount例子)通常與Reducer邏輯一樣好處減少Map

Task輸出數據量(磁盤IO)減少Reduce-Map網絡傳輸數據量(網絡IO)如何正確使用結果可疊加Sum(YES!),Average(NO!)MapReduce編程模型—PartitionerPartitioner決定了Map

Task輸出的每條數據交給哪個Reduce

Task處理默認實現:hash(key)mod

RR是Reduce

Task數目允許用戶自定義很多情況需自定義Partitioner比如“hash(hostname(URL))

modR”確保相同域名的網頁交給同一個Reduce

Task處理20MapReduce編程模型Map階段InputFormat(默認TextInputFormat)MapperCombiner(local

reducer)PartitionerReduce階段ReducerOutputFormat(默認TextOutputFormat)21目錄MapReduce

的應用場景MapReduce

編程模型MapReduce的架構常見MapReduce應用場景總結22MapReduce

1.0架構23MapReduce

1.0(分布式計算框架)Master管理所有作業(yè)將作業(yè)分解成一系列任務將任務指派給TaskTracker作業(yè)/任務監(jiān)控、錯誤處理等JobTrackerTaskTrackersSlave24運行Map

Task和Reduce

Task與JobTracker交互,執(zhí)行命令,并匯報任務狀態(tài)MapReduce

1.0(分布式計算框架)Map引擎解析每條數據記錄,傳遞給用戶編寫的map()將map()輸出數據寫入本地磁盤(如果是map-only作業(yè),則直接寫入HDFS)Map

TaskReduce

TaskReduce引擎25從Map

Task上遠程讀取輸入數據對數據排序將數據按照分組傳遞給用戶編寫的reduce()MapReduce

2.0架構NodeManagerMMaapp

TTaasskkNodeManagerRReedduuccee

TTaasskkCClliieenntt1Container245MMaapp

TTaasskk7772 5MMRR

AApppp

MMssttrrResourceSchedulerApplicationsManagerContainerContainerContainerResourceManager3,866626MapReduce

2.0架構Client與MapReduce

1.0的Client類似,用戶通過Client與YARN交互,提交MapReduce作業(yè),查詢作業(yè)運行狀態(tài),管理作業(yè)等。MRAppMaster功能類似于

1.0中的JobTracker,但不負責資源管理;功能包括:任務劃分、資源申請并將之二次分配個MapTask和Reduce

Task、任務狀態(tài)監(jiān)控和容錯。27MapReduce

2.0運行流程NodeManagerNodeManagerNodeManagerResourceManagerMRAppMasterClientClientClient28①②③④⑤⑤⑤⑥⑥MapTaskContainerContainerReduceTaskMapTaskContainerMapReduce

2.0容錯性MRAppMaster容錯性一旦運行失敗,由YARN的ResourceManager負責重新啟動,最多重啟次數可由用戶設置,默認是2次。一旦超過最高重啟次數,則作業(yè)運行失敗。MapTask/Reduce

TaskTask周期性向MRAppMaster匯報心跳;一旦Task掛掉,則MRAppMaster將為之重新申請資源,并運行之。最多重新運行次數可由用戶設置,默認4次。29MapReduce計算框架—數據本地性MemDiskCPUMemDiskCPU…Switch每個機架通常有16-64

個節(jié)點MemDiskCPUMemDiskCPU…SwitchSwitch同一個機架內任意兩個節(jié)點間共享1Gbps帶寬機架間帶寬為2-10GbpsMapReduce計算框架—數據本地性什么是數據本地性(data

locality)如果

溫馨提示

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

評論

0/150

提交評論