在MapReduce中,它也是主從結構,主節點:JobTracker,從節點:TaskTracker。主節點只有一個從節點有不少個,主節點在主機上,從節點分佈到其餘機器上。算法
JobTracker:app
做用:框架
一、負責接收用戶提交的做業;oop
二、負責把計算任務分給TaskTracker執行;spa
三、監控TaskTracker的執行狀況;日誌
TaskTracker:orm
做用:排序
一、執行JobTracker分配的計算任務;接口
JobClient:隊列
概念:是用戶做業與JobTracker交互的主要接口。
做用:
一、負責提交做業,負責啓動;
二、跟蹤任務執行;
三、訪問任務狀態和日誌等;
Hadoop中基於RPC的通訊協議
一、JobSubmissionProtocol:是JobClient與JobTracker通訊的接口。
執行過程:TaskTracker每隔一段時間向JobTracker發送hearbeat(心跳機制)提交當前TaskTracker所在機
器的內存,CPU,磁盤等狀態信息,是否能夠接收新任務等信息;JobTracker接收到hearbeat
給TaskTracker返回須要所作的job或task操做,是否開啓新的任務。TaskTracker能夠從取
得JobTracker取得當前文件系統路徑,須要執行Job的Jar文件路徑等.
二、InterTrackerProtocol:是TaskTracker與JobTracker通訊的接口。
做用:主要用來提交,執行Job和取得當前Job狀態;JobClient能夠經過此協議提交Job(submitJob),
取得當前Job的參數,狀態,Counter,Task狀態,文件系統路徑,jar文件路徑,全部Job的狀
態,還有Job隊列的信息,此外JobClient還能夠提交KillJob和設定Job優先級等任務到 JobTracker。
MapReduce中驅動默認設置:
InputFormat |
TextInputFormat |
MapperClass |
IdentityMapper |
MapOutputKeyClass |
LongWritable |
MapOutputValueClass |
Text |
PartitionerClass |
HashPartitioner |
ReduceClass |
IdentityReduce |
OutputKeyClass |
LongWritable |
OutputValueClass |
Text |
OutputFormatClass |
TextOutputFormat |
MapReduce中常見的算法
一、單詞計數
二、數據去重
三、排序
四、Top k
五、選擇
六、投影
七、分組
八、多表鏈接
九、單表關聯
MapReduce原理
MapReduce爲何能實現失敗檢測?
正是因爲採用了無共享框架,全部MapReduce纔可以實現失敗檢測,這也意味着各個任務之間彼此獨立。
MapReduce做業:
MapReduce做業(Job)是客戶端須要執行的一個工做單元:它包括輸入數據,MapReduce程序和配置信息等。
注意:在MapReduce中不能處理文件名以_(下劃線)開頭的文件.
Name:Xr
Date:2014-02-23 15:45