1 、理解MapReduce思想
2 MapReduce设计思想
3 分布式计算概念
总结
1 MapReduce思想:MapReduce的思想核心是“先分再合,分而治之”。
Map表示第一阶段,负责“拆分”:即把复杂的任务分解为若干个“简单的子任务”来并行处理。可以进行拆分的
前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。 Reduce表示第二阶段,负责“合并”:即对map阶段的结果进行全局汇总。
这两个阶段合起来正是MapReduce思想的体现
2 对相互间不具有计算依赖关系的大数据计算任务,实现并行最自然的办法就是采取MapReduce分而治之的策略。
首先Map阶段进行拆分,把大数据拆分成若干份小数据,多个程序同时并行计算产生中间结果;然后是Reduce聚
合阶段,通过程序对并行的结果进行最终的汇总计算,得出最终的结果。
不可拆分的计算任务或相互间有依赖关系的数据无法进行并行计算!
3 MapReduce借鉴了函数式语言中的思想,用Map和Reduce两个函数提供了高层的并行编程抽象模型。
map: 对一组数据元素进行某种重复式的处理;
reduce: 对Map的中间结果进行某种进一步的结果整理。
4 MapReduce处理的数据类型是<key,value>键值对
5 MapReduce最大的亮点在于通过抽象模型和计算框架把需要做什么(what need to do)与具体怎么做(how to do)分开了,为程序员提供一个抽象和高层的编程接口和框架。
程序员仅需要关心其应用层的具体计算问题,仅需编写少量的处理应用本身计算问题的业务程序代码。
6 MapReduce特点
易于编程
Mapreduce框架提供了用于二次开发的接口;简单地实现一些接口,就可以完成一个分布式程序。任务计算交给计算
框架去处理,将分布式程序部署到hadoop集群上运行,集群节点可以扩展到成百上千个等。
良好的扩展性
当计算机资源不能得到满足的时候,可以通过增加机器来扩展它的计算能力。基于MapReduce的分布式计算得特点可
以随节点数目增长保持近似于线性的增长,这个特点是MapReduce处理海量数据的关键,通过将计算节点增至几百或
者几千可以很容易地处理数百TB甚至PB级别的离线数据。
高容错性
Hadoop集群是分布式搭建和部署得,任何单一机器节点宕机了,它可以把上面的计算任务转移到另一个节点上运行,
不影响整个作业任务得完成,过程完全是由Hadoop内部完成的。
适合海量数据的离线处理
可以处理GB、TB和PB级别得数据量
7 MapReduce局限性
实时计算性能差
MapReduce主要应用于离线作业,无法作到秒级或者是亚秒级得数据响应。
不能进行流式计算
流式计算特点是数据是源源不断得计算,并且数据是动态的;而MapReduce作为一个离线计算框架,主要是针对静态
数据集得,数据是不能动态变化得。