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