做業來源於:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3319node
1. 用本身的話闡明Hadoop平臺上HDFS和MapReduce的功能、工做原理和工做過程。shell
(1)HDFS的功能:元數據、檢查點、DataNode功能編程
HDFS的工做原理:服務器
數據存取 - HDFS架構:架構
Master / Slave(主從結構) - 節點能夠理解爲物理機器框架
1) 分佈式文件系統,它所管理的文件是被切塊存儲在若干臺datanode服務器上.;分佈式
2) hdfs提供了一個統一的目錄樹來定位hdfs中的文件,客戶端訪問文件時只要指定目錄樹的路徑便可,不用關心文件的具體物理位置;函數
3) 每個文件的每個切塊,在hdfs集羣中均可以保存多個備份(默認3份),在hdfs-site.xml中,dfs.replication的value的數量就是備份的數量;oop
4) hdfs中有一個關鍵進程服務進程:namenode,它維護了一個hdfs的目錄樹及hdfs目錄結構與文件真實存儲位置的映射關係(元數據).而datanode服務進程專門負責接收和管理"文件塊";測試
HDFS的工做過程:客戶端要向HDFS寫數據,首先要跟namenode通訊以確承認以寫文件並得到接收文件block的datanode,而後,客戶端按順序將文件逐個block傳遞給相應datanode,並由接收到block的datanode負責向其餘datanode複製block的副本。
(2)MapReduce的功能:Hbase和Hdfs之間數據相互轉換;排序;Top N;從hbase中讀取數據統計並在hdfs中降序輸出Top 3;去重(Distinct)、計數(Count)、最大值(Max)、求和(Sum)、平均值(Avg);(多個job串行處理計算平均值;分區(Partition);Pv、Uv;倒排索引(Inverted Index);join;
MapReduce的工做原理:
數據運算 - MapReduce架構:
主從結構
MR編程模型原理:利用一個輸入的key-value對集合來產生一個輸出的key-value對集合。
MapReduce的工做過程:MR框架是由一個單獨運行在主節點上的JobTracker和運行在每一個集羣從節點上的TaskTracker共同組成。主節點負責調度構成一個做業的全部任務,這些任務分佈在不一樣的不一樣的從節點上。主節點監視它們的執行狀況,並從新執行以前失敗的任務。從節點僅負責由主節點指派的任務。當一個Job被提交時,JobTracker接受到提交做業和配置信息以後,就會將配置信息等分發給從節點,同時調度任務並監控TaskTracker的執行。JobTracker能夠運行於集羣中的任意一臺計算機上。TaskTracker負責執行任務,它必須運行在DataNode上,DataNode既是數據存儲節點,也是計算節點。JobTracker將map任務和reduce任務分發給空閒的TaskTracker,這些任務並行運行,並監控任務運行的狀況。若是JobTracker出了故障,JobTracker會把任務轉交給另外一個空閒的TaskTracker從新運行。
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)查看運行結果