MapReduce定义
mapReduce是一个分布式运算程序的编程框架,是用户开发基于hadoop的数据分析应用的核心框架。
mapreduce的核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并运行在一个hadoop集群上。
MapReduce的优缺点
优点:
易于编程
良好的扩展性
高容错性
适合tb/pb级以上海量数据的离线处理
缺点:
不擅长实时计算
不擅长流式计算
不擅长DAG(有向无环图)计算
MapReduce的核心思想
1、mapreduce运算程序分为两个阶段,map阶段和reduce阶段
2、map阶段的并发maptask,完全并行运行,互不相干
3、reduce阶段的并发reducetask,完全互不相干,但是他们的数据依赖于上一个阶段的所有maptask并行实例的输出
4、MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行。
MapReduce程序的两个阶段
map阶段(分析处理清洗数据)
reduce阶段(对数据进行汇总)
MapReduce编程规范
用户编写的程序分成三个部分:Mapper、Reducer和Driver。