Hadoop二十五
MapReduce
定义:MapReduce是一个分布式运算程序的编程框架,是由用户开发”基于Hadoop的数据分析应用”的核心框架。
功能:核心功能是将用户编写的业务逻辑代码和自带默认组件整和成一个完整的分布式运算程序,并发布运行在一个Hadoop集群上。
MapReduce:自己处理相关业务代码+自身的默认代码
优点:
1、易于编程
2、良好拓展性
3、高容错性
4、适合海量数据计算(TB/PB)
缺点:
1、不擅长实时计算。 mysql
2、不擅长流式计算。 Sparkstreaming flink
3、不擅长DAG有向无环图计算。spark
例:统计单词运算步骤:
1、MapReduce运算程序一般需要分为2个阶段:Map阶段和Reduce阶段
2、Map阶段的并发Map Task,完全并行运行,互不相干。
1)、按行读数据
2)、按空格切分行内单词
3)、KV键值对
4)、将所有的KV键值对中的单词,按照单词的首字母,分成2个分区溢写到磁盘
3、Reduce阶段的并发Reduce Task,完全互不相干,但是他们的数据依赖于上一个阶段所有Map Task并发实例的输出
4、Map Reduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运 行