赞
踩
MapReduce(最早由谷歌提出)是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义:
1. MapReduce是一个并行程序的计算模型与方法。
2. MapReduce是一个并行计算与运行的软件框架。
3. MapReduce是一个基于集群的高性能并行计算平台。
1. 分而治之
MapReduce 采用“分而治之”的设计思想,即采用一定的数据划分方法将大规模数据集切分成许多独立的分片,然后将这些分片交由多个节点去并行处理,最后汇总处理结果。
2. 抽象成模型
MapReduce 借鉴了函数式编程的设计思想以及矢量编程语言的特性,将数据处理过程高度抽象为Map 函数和Reduce 函数。
3. 上升到架构
MapReduce 以统一计算架构为程序员隐藏系统底层细节。使用MapReduce 时,程序员只需要集中于应用问题和算法本身,不需要关注其他系统层的处理细节,这大大减轻了程序员开发程序的负担。
1. MapReduce的优点:
l 易于编程
l 良好的扩展性:当计算机资源不能得到满足的时候,可以通过简单地增加机器来扩展它的计算能力。
l 高容错性:MapReduce集群中有一台机器宕机了,它可以把上面的计算任务转移到集群的另一台机器上运行,不至于让这个任务运行失败。
2. MapReduce的缺点
l 不适合实时计算:MapReduce的启动时间长,且涉及多次磁盘读写和网格传输,因此它不适合数据的实时在线处理。
l 不适合流式计算:流式计算的输入数据是动态的,而MapReduce自身的设计特点决定了其输入数据集必须是静态的。
l 不适合DAG(有向无环图)计算:MapReduce 作业的输出结果都必须写入磁盘,DAG中的依赖关系会造成大量的磁盘I/O 消耗,从而大大降低整体性能。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。