分佈式並行計算MapReduce

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

1.用本身的話闡明Hadoop平臺上HDFS和MapReduce的功能、工做原理和工做過程。

HDFS:進行分佈式計算平臺,將多臺節點的內容進行彙總分析。

MapReduce:

一、功能:用於處理和生成大規模數據集的相關的實現,將數據切割成數據塊分批處理。
二、工做原理:用戶定義一個map函數來處理一個Key-Value對以生成一批中間的Key-Value對,再定義一個reduce函數將全部這些中間的有相同Key的Value合併起來,MapReduce模型主要有Mapper和Reducer,Mapper端主要負責對數據的分析處理,最終轉化爲Key-Value的數據結構;Reducer端主要是獲取Mapper出來的結果,對結果進行統計。即分而治之的策略:

三、工做過程:
將分析的文件切割成多個數據塊,將其分配給各個節點處理,每一個節點又把數據塊分給多個map處理,接着多個map將結果發送給shuffle處理,shuffle再將其交給reduce,最終將其寫入到分佈式系統文件。
python

2.HDFS上運行MapReduce

1)查看是否已經安裝python:

2)在/home/hadoop/路徑下創建wc文件夾,在文件夾內新建mapper.py、reducer.py、run.sh和文本文件HarryPotter.txt:


3)查看mapper.py reducer.py run.sh的內容:

4)修改mapper.py和reducer.py文件的權限:

5)測試mapper.py和reducer.py:


6)啓動hadoop:

7)把文本文件上傳到hdfs:

8)將hadoop-streaming-2.7.1.jar的路徑添加到bashrc文件而且讓環境變量生效:

9)運行run.sh文件統計文本:



相關文章
相關標籤/搜索