作業來源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3319
1.用自己的話闡明Hadoop平台上HDFS和MapReduce的功能、工作原理和工作過程。
HDFS 全稱 Hadoop分布式檔案系統,其最主要的作用是作為 Hadoop 生态中各系統的存儲服務。功能:其中的目的是為了可以用大量廉價的存儲器存取大量的資料可以支撐起千萬計的檔案,是一種非常好的資料存儲模式,在這種模式中考慮到了資料批處理,而不是使用者互動處理,比之資料通路延遲的問題,更關鍵的是資料通路的高吞吐量。工作原理: 其中HDFS采用master/slave架構,就是主要分為兩類分别是NameNode和DataNode節點,其中NameNode節點是主節點安排工作,負責對檔案的通路,DataNode節點主要是負責管理本機上的存儲。
MapReduce是一種程式設計模型,功能:主要用于大資料的處理,例如分布grep,分布排序,web連接配接圖反轉,每台機器的詞矢量,web通路日志分析,反向索引建構,文檔聚類,機器學習,基于統計的機器翻譯等等。工作原理:由于資料是以塊為基礎的,資料節點又不是隻有一個,是以主要的思想是并行處理。而每個塊的資料輸入我們又稱之為分片,map會對分片進行處理,每個map都是可以并行的得出的結果傳給Reduce進行限制然後進行處理并輸出最後的結果。
HDFS和MapReduce兩者是必不可少的,缺少一個都不行,HDFS是要MapReduce進行處理的資料的來源,而HDFS的資料又要MapReduce的處理才能有作用。
2.HDFS上運作MapReduce
1)準備文本檔案,放在本地/home/hadoop/hszdocument

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)檢視運作結果