大数据入门之Hadoop生态系统(7) -- MapReduce概念

1.MapReduce概述

MapReduce是面向大数据并行处理的计算模型、框架和平台。

2.MapReduce编程模型,通过wordcount词频统计分析举例

大数据入门之Hadoop生态系统(7) -- MapReduce概念_第1张图片

这里我们通过一张图来进行分析。

Input:就是我们输入的文件的中的单词。

Splitting:我们按照行来拆分成三个文件,我们有三个作业对三个拆分的文件进行并行处理。

Mapping:按照指定的分隔符,把每个输入文件拆分成一个单词一个单词的。然后我们给每个单词都赋上一个1,代表我们拆分出了一个这样的单词。这样我们可以知道每个单词出现1次的个数,但这个时候我们还不知道,某个单词一共出现了多少次。

Shuffling:把相同的单词分到一个节点上进行合并。

Reducing:统计单词出现的次数(就是把所有的1合并的过程)。

3.MapReduce2.x架构

大数据入门之Hadoop生态系统(7) -- MapReduce概念_第2张图片

因为MapReduce是运行在YARN之上的一款计算框架,所以它的架构用的就是YARN的架构设计。所以具体的架构流程我们可以参考大数据入门之Hadoop生态系统(5) -- YARN概念。

(1)ResourceManager(简称RM):整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理和调度。处理客户端的请求:提交一个作业、杀死一个作业。监控我们的NM,一旦某个NM挂了,那么该NM上运行的任务需要告诉我们的AM来如何进行处理。

(2)NodeManager(简称NM):整个集群中有多个NM,负责自己本身节点资源管理和使用。定时向RM汇报本节点资源使用情况。接受并处理来自RM的各种命令:启动Container。处理来自AM的命令。自己单个节点的资源管理是由自己来完成的。

(3)ApplicationMaster(简称AM):每个应用程序对应一个,负责应用程序的管理,为应用程序向RM申请资源(core、memory),分配给内部task进行处理。需要与NM通信:启动 / 停止task。task是运行在container里面,AM也是运行在container里面。

(4)Container:封装了CPU、Memory等资源的一个容器。是一个任务运行环境的抽象。

(5)Client:提交作业、查看作业的运行进度、杀死作业。

总结:一个作业提交上来,先到RM上来,然后RM会找一个节点(NodeManager)启动一个container运行MRApplicationMaster,然后向RM申请资源,到对应的NodeManager上启动container,在container里面完成MapTask和ReduceTask。

 

你可能感兴趣的:(大数据,MapReduce)