MapReduce
用于数据处理的编程模型,用于大规模数据集的并行运算。基于磁盘IO进行迭代,开销较大
MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。
MR(MapReduce)优缺点
优点
- 易于编程
- 良好的扩展性
- 通过添加机器容易扩容
- 高容错性
- 机器挂掉时,自动将计算任务给其它节点完成
- 适合PB级海量数据离线处理
缺点
- 不擅长实时计算
- 不擅长流式计算
- MR输入数据集是静态
- 不擅长DAG(有向图)计算
map和reduce
MapReduce任务处理过程分为两个阶段(map和reduce),每个阶段都是用键-值对作为输入和输出。
- map:并行处理输入数据
- reduce:对Map结果进行汇总
- Shuffle 连接Map和Reduce两个阶段(Shuffle 就是重新洗牌)
MR进程
- MrAppMaster:负责整个程序的过程调度及状态协调
- MapTask:负责Map阶段的整个数据处理流程
- ReduceTask:负责Reduce阶段的整个数据处理流程