MapReduce笔记

本文是根据网络视频学习资料总结,不喜勿喷!!!

原语:

•“相同”的key为一组,调用一次reduce方法,方法内迭代这一组数据进行计算。

基本的数据流:•输入(格式化k,v)数据集->map映射成一个中间数据集(k,v)->reduce

为什么叫MapReduce:MapTask & ReduceTask


图1

map阶段: 一个block对应1或多个split,每个split对应一个maptask。split把文件切分成多个切片,每个切片对应一个map任务进行排序,计算,形成形式。

reduce阶段:将上阶段map的中间数据集进行shuffle,然后merge,根据原语调用一次reduce任务,把最后的结果进行输出,如图二所示。


图二

下面是一个案例:

图三
图4

理解:

Map阶段:读懂数据;映射成KV模式;并行分布式;计算向数据移动。


Reduce阶段:数据全量/分量加工;Reduce中可以包含不同的key;相同的Key汇聚到一个Reduce中;相同的Key调用一次reduce方法。

运行架构:


图5

图5是Hadoop1.x的计算运行框架,任务资源调度和分配由job Tracker进行管理,如下图:

图6

JobTracker负责将计算上下文,计算程序(Map task)发送到DataNode上。计算结果由reduce task程序处理,汇总得到最后的结果。如下图:


图7

总结:


图8


Hadoop2.x以后使用yarn框架:


yarn资源管理框架

Clients与Resource Manager交互,Clients提交作业到计算框架。RM与NM(Node Manager)保持心跳,当RM收到任务使,会随机挑一个不忙的NM创建App Master,负责任务的调度,App向RM发送资源请求,等资源审核通过,会在其他的NM上创建Container进行实际的计算的任务,不向App master汇报自己的任务状态。当Container出现故障时,App master会定时检测出来,并创建新的Container。

一般RM的端口号为:8088

yarn介绍


yarn介绍


物理架构图

其中Executor就是为了启动APP与NM的连接,使APP与NM进行交互,实现任务调度。

运行测试例子:


案例,wordcount

你可能感兴趣的:(MapReduce笔记)