MapReduce 基础
一、概述
1、概念
是一个分布式运算程序的编程框架
2、核心功能
业务逻辑代码和自带默认组件
二、MapReduce的优缺点
1、优点
易于编程、良好的扩展性、高容错性、适合PB级以上海量数据的离线处理
2、缺点
不擅长实时计算、不擅长流式计算、不擅长依赖关系的计算
三、核心思想
1、MapReduce运算程序一般分为两个阶段:Map阶段和Reduce阶段
2、Map阶段的并发为MapTask,完全并行运行,互不相干
3、Reduce阶段的并发ReduceTask,完全互不相干,但他们的数据依赖上阶段所有的MapTask并行实例的输出
4、MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户逻辑非常复杂,那么就只能多个MapReduce串行
注意:
Map阶段对数据进行按行处理
四、MapReduce进程
1、MrAppMaster:负责整个程序的过程调度及状态协调
2、MapTask:负责Map阶段的整个数据处理流程
3、ReduceTask:负责Reduce阶段整个数据处理流程