1.用自己的話闡明Hadoop平台上HDFS和MapReduce的功能、工作原理和工作過程。
MapReduce是并行處理架構,實作任務分解和排程。
其實原理說通俗一點就是分而治之的思想,将一個大任務分解成多個小任務(map),小任務執行完了之後,合并計算結果(reduce)。

也就是說,JobTracker拿到job之後,會把job分成很多個maptask和reducetask,交給他們執行。 MapTask、ReduceTask函數的輸入、輸出都是<key,value>的形式。HDFS存儲的輸入資料經過解析後,以鍵值對的形式,輸入到MapReduce()函數中進行處理,輸出一系列鍵值對作為中間結果,在Reduce階段,對擁有同樣Key值的中間資料進行合并形成最後結果。
首先我們需要先知道幾個小概念:
1.job 2.task 3.jobTracker 4.taskTracker
job:在Hadoop内部,用Job來表示運作的MapReduce程式所需要用到的所有jar檔案和類的集合,>這些檔案最終都被整合到一個jar檔案中,将此jar檔案送出給JobTraker,MapReduce程式就會執行。
task:job會分成多個task。分為MapTask和ReduceTask。
jobTracker:管理節點。将job分解為多個map任務和reduce任務。
2.HDFS上運作MapReduce
1)準備文本檔案,放在本地/home/hadoop/wc
2)編寫map函數和reduce函數,在本地運作測試通過
3)啟動Hadoop:HDFS, JobTracker, TaskTracker
4)把文本檔案上傳到hdfs檔案系統上 user/hadoop/input
5)streaming的jar檔案的路徑寫入環境變量,讓環境變量生效
6)建立一個shell腳本檔案:streaming接口運作的腳本,名稱為run.sh
7)source run.sh來執行mapreduce
8)檢視運作結果
每位同學準備不一樣的大一點英文文本檔案,每個步驟截圖交上部落格上。
上述步驟測試通過之後,可以嘗試對文本做處理之後再統計次數,如标點符号、停用詞等。
有能力的同學嘗試對之前爬蟲爬取的文本,在Hadoop上做中文詞頻統計。