天天看點

分布式并行計算MapReduce

作業要求來源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3319

1.用自己的話闡明Hadoop平台上HDFS和MapReduce的功能、工作原理和工作過程。

HDFS:進行分布式計算平台,将多台節點的内容進行彙總分析。

MapReduce:

1、功能:用于處理和生成大規模資料集的相關的實作,将資料切割成資料塊分批處理。

2、工作原理:使用者定義一個map函數來處理一個Key-Value對以生成一批中間的Key-Value對,再定義一個reduce函數将所有這些中間的有相同Key的Value合并起來,MapReduce模型主要有Mapper和Reducer,Mapper端主要負責對資料的分析處理,最終轉化為Key-Value的資料結構;Reducer端主要是擷取Mapper出來的結果,對結果進行統計。即分而治之的政策:

分布式并行計算MapReduce

3、工作過程:

将分析的檔案切割成多個資料塊,将其配置設定給各個節點處理,每個節點又把資料塊分給多個map處理,接着多個map将結果發送給shuffle處理,shuffle再将其交給reduce,最終将其寫入到分布式系統檔案。

分布式并行計算MapReduce

2.HDFS上運作MapReduce

1)準備文本檔案,放在本地/home/hadoop/wc

分布式并行計算MapReduce

2)編寫map函數和reduce函數,在本地運作測試通過

分布式并行計算MapReduce

3)啟動Hadoop:HDFS, JobTracker, TaskTracker

分布式并行計算MapReduce

4)把文本檔案上傳到hdfs檔案系統上 user/hadoop/input 

5)streaming的jar檔案的路徑寫入環境變量,讓環境變量生效

6)建立一個shell腳本檔案:streaming接口運作的腳本,名稱為run.sh

7)source run.sh來執行mapreduce

8)檢視運作結果

每位同學準備不一樣的大一點英文文本檔案,每個步驟截圖交上部落格上。