【MapReduce】介绍和基本构思
【MapReduce】系列学习笔记:
文章目录
1 MapReduce介绍
1、核心思想:分而治之
2、适用于大量复杂的任务处理场景(大规模数据处理场景)
部分 | 功能 |
---|---|
Map | 负责“分”,即将复杂的任务分解为若干个“简单的任务来并行处理,可以进行拆分的前提是这些小任务可以并行计算,彼此间没有依赖关系” |
Reduce | 负责“合”,对map阶段的结果进行全局汇总 |
MapReduce运行在yarn集群:
- ResourceManager(主)
- NodeManager(从)
Map、Reduce这两个阶段合起来就是MapReduce的思想体现
比如说:
我们要数图书馆里的书,你数1号书架,我数2号书架,这就是“Map”,人越多数的速度越快。最后我们把所有的数量统计起来就是”Reduce“。
2 设计构思
MapReduce是一个分布式运算程序的编程框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在hadoop集群上。
Map和Reduce为程序员提供了一个清晰的操作接口抽象描述:
- Map:
(K1:V1)-> (K2:V2)
- Reduce:
(K2:V2)-> (K3:V3)
在读取文件时,会读取文件并且自动转换为键值对的形式
一个完整的MapReduce程序在分布式运行时有三类实例进程:
-
MRAppMaster
:负责整个程序的过程调度及状态协调 -
MapTask
:负责map阶段的整个数据处理流程 -
Reduce
:负责reduce阶段整个数据处理流程
上图中:1、提交计算任务
2、启动AppMaster
4、回复资源列表
5、要求nodemanager分配资源
6、执行具体的计算任务
7、将计算状态和结果汇报给appMaster
8、汇报计算结果