天天看點

分布式并行計算MapReduce

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

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

HDFS(Hadoop Distributed File System,Hadoop分布式檔案系統),它是一個高度容錯性的系統,适合部署在廉價的機器上。HDFS能提供高吞吐量的資料通路,适合那些有着超大資料集(large data set)的應用程式。

 易于擴充的分布式檔案系統

 運作在大量普通廉價機器上,提供容錯機制

 為大量使用者提供性能不錯的檔案存取服務

分布式并行計算MapReduce

MapReduce是并行處理架構,實作任務分解和排程。

其實原理說通俗一點就是分而治之的思想,将一個大任務分解成多個小任務(map),小任務執行完了之後,合并計算結果(reduce)。

分布式并行計算MapReduce

也就是說,JobTracker拿到job之後,會把job分成很多個maptask和reducetask,交給他們執行。 MapTask、ReduceTask函數的輸入、輸出都是<key,value>的形式。HDFS存儲的輸入資料經過解析後,以鍵值對的形式,輸入到MapReduce()函數中進行處理,輸出一系列鍵值對作為中間結果,在Reduce階段,對擁有同樣Key值的中間資料進行合并形成最後結果。

2.HDFS上運作MapReduce

1)檢視是否已經安裝python:

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

分布式并行計算MapReduce
分布式并行計算MapReduce

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

分布式并行計算MapReduce
分布式并行計算MapReduce

3)啟動Hadoop:HDFS, JobTracker, TaskTracker

分布式并行計算MapReduce

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

分布式并行計算MapReduce

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

分布式并行計算MapReduce

6)source run.sh來執行mapreduce

分布式并行計算MapReduce
分布式并行計算MapReduce