MapReduce

MapReduce

1 MapReduce计算框架的组成

1547462986525

2 Mapper

– Map-Reduce的思想就好比太极又好比天下大势

​ Mapper负责“”,即把得到的复杂的任务分解为若干个“简单的任务”执行。

“简单的任务”有几个含义:

1、数据或计算规模相对于原任务要大大缩小;

2、就近计算,即会被分配到存放了所需数据的节点进行计算;

3、这些小任务可以并行计算,彼此间几乎没有依赖关系

![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps1493.tmp.jpg)

Split规则:

– max.split(100M)

– min.split(10M)

– block(64M)

max(min.split,min(max.split,block))

split实际=block大小

Map的数目通常是由输入数据的大小决定的,一般就是所有输入文件的总块(block)数

![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps14A4.tmp.jpg)

3 Reduce

Reduce的任务是对map阶段的结果进行“汇总”并输出。

Reducer的数目由mapred-site.xml配置文件里的项目mapred.reduce.tasks决定。缺省值为1,用户可以覆盖之。

![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps33B9.tmp.jpg)

![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps33BA.tmp.jpg)

4 Shuffle

– 在mapper和reducer中间的一个步骤

可以把mapper的输出按照某种key值重新切分和组合成n份,把key值符合某种范围的输出送到特定的reducer那里去处理。

– 可以简化reducer过程

Partitoner : hash(key) mod R

![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps2CC9.tmp.jpg)

5 整个MR计算框架

Mr框架过程详解(以Wordcount为例):

![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsCBC.tmp.jpg)

![img](file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wpsCBD.tmp.jpg)

5 MR 架构

一主多从架构

– 主 JobTracker:(RM)

负责调度分配每一个子任务task运行于TaskTracker上,如果发现有失败的task就重新分配其任务到其他节点。每一个hadoop集群中只一个 JobTracker, 一般它运行在Master节点上。

– 从TaskTracker:(NM)

TaskTracker主动与JobTracker通信,接收作业,并负责直接执行每一个任务,为了减少网络带宽TaskTracker最好运行在HDFS的DataNode上。

你可能感兴趣的:(MapReduce)