@數據庫
Job
(做業) : 一個MapReduce
程序稱爲一個Job。app
MRAppMaster
(MR任務的主節點): 一個Job在運行時,會先啓動一個進程,這個進程稱爲MRAppMaster,負責Job中執行狀態的監控,容錯,和RM申請資源,提交Task等。oop
Task
(任務): Task是一個進程,負責某項計算。code
Map
(Map階段):Map是MapReduce程序運行的第一個階段,Map階段的目的是將輸入的數據,進行切分。將一個大文件,切分爲若干小部分!切分後,每一個部分稱爲1片(split
),每片數據會交給一個Task(進程),Task負責Map階段程序的計算,稱爲MapTask
。在一個MR程序的Map階段,會啓動N(取決於切片數)個MapTask。每一個MapTask是並行運行。orm
Reduce
(Reduce階段): Reduce是MapReduce程序運行的第二個階段(最後一個階段)!Reduce階段的目的是將Map階段的每一個MapTask計
算後的結果進行合併彙總!獲得最終結果!Reduce階段是可選的,Task負責Reduce階段程序的計算,稱爲ReduceTask,一個Job能夠經過設置,啓動N個ReduceTask,這些ReduceTask也是並行運行!每一個ReduceTask最終都會產生一個結果。進程
①Mapper
:map階段核心的處理邏輯hadoop
②Reducer
: reduce階段核心的處理邏輯資源
③InputFormat
:輸入格式it
FileInputFormat
SequnceFileInputFormat
DBInputFormat
④RecordReader
: 記錄讀取器io
(k-v)
⑤OutPutFormat
: 輸出格式
FileOutputFormat
SequnceFileOutputFormat
DBOutPutFormat
⑥RecordWriter
: 記錄寫出器
⑦Partitioner
: 分區器
keyout-valueout
,爲每組keyout-valueout打上標記,進行分區