1. MapReduce是Hadoop的一個核心技術(shù)、是一個基于分布式的對大數(shù)據(jù)集進行并行處理的一個計算框架。
2. 核心思想是移動計算而非數(shù)據(jù)。
3. 整個計算流程分為兩個階段,一個是map階段,一個是reduce階段
- map階段 一個mapreduce作業(yè)在map階段會先對數(shù)據(jù)進行邏輯分片處理,一個邏輯分片對應(yīng)一個MapTask。
每一個MapTask在處理數(shù)據(jù)的時候,都會將每一行數(shù)據(jù)解析成鍵值對的形式,作為輸入。
輸入給map函數(shù)。map函數(shù)處理后,也會以鍵值對的形式作為輸出。
之后會對數(shù)據(jù)進行分區(qū),排序等處理
- reduce階段 在進入reduce階段之前。
reduceTask會將自己要處理的分區(qū)數(shù)據(jù)fetch到reduceTask所在的機器節(jié)點上,然后以鍵值對