作業要求來源: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)檢視是否已經安裝python:
分布式并行計算MapReduce 2)在/home/hadoop/路徑下建立wc檔案夾,在檔案夾内建立mapper.py、reducer.py、run.sh和文本檔案HarryPotter.txt:
分布式并行計算MapReduce
分布式并行計算MapReduce 3)檢視mapper.py reducer.py run.sh的内容:
分布式并行計算MapReduce 4)修改mapper.py和reducer.py檔案的權限:
分布式并行計算MapReduce 5)測試mapper.py和reducer.py:
分布式并行計算MapReduce
分布式并行計算MapReduce 6)啟動hadoop:
分布式并行計算MapReduce 7)把文本檔案上傳到hdfs:
分布式并行計算MapReduce 8)将hadoop-streaming-2.7.1.jar的路徑添加到bashrc檔案并且讓環境變量生效:
分布式并行計算MapReduce
分布式并行計算MapReduce 9)運作run.sh檔案統計文本:
分布式并行計算MapReduce
分布式并行計算MapReduce
分布式并行計算MapReduce