MapReduce是谷歌公司的一种分布式计算框架,或者支持大数据批量处理的编程模型,对于大规模数据的高效处理完全依赖于他的设计思想,其设计思想可以从三个层面来阐述:
(1)大规模数据并行处理,分而治之的思想,MapReduce分治算法对问题实施的分而治之的策略,但前提是保证数据集的各个划分处理过程是相同的。数据块,不存在依赖关系,将采用合适的划分对输入数据集进行分片,每个分片交由一个节点处理,各节点之间的处理是并行进行的一个节点,不关心另一个节点的存在,与操作,最后将各个节点的中间运算结果进行排序归并等操作以归约出最终处理结果。
(2)MapReduce编程模型,MapReduce计算框架的核心是,其中Map(映射)和Reduce(归约)是借用自Lisp函数式编程语言的原语,同时其也包含了从矢量编程语言里借来的特性,通过提供Map与Reduce两个基本函数,增加了自己的高层并行编程模型接口。Map操作,主要负责对海量数据进行扫描转换,以及必要的处理过程,从而得到中间结果,中间结果通过必要的处理并输出最终结果,这就是Mapreduce对大规模数据处理过程的抽象。(www.daowen.com)
(3)分布式运行时环境,MapReduce的运行时环境实现了诸如集群中节点间通信、督促检测与失效、恢复节点数据存储与划分任务调度以及负载均衡等底层相关的运行细则,这也使得编程人员更加关注应用问题与算法本身,而不必掌握底层细节就能将程序运行在分布式系统上。
MapReduce计算框架,假设用户需要处理的输入数据是一系列的key-value对,在此基础上定义了两个基本函数干,Map函数和Reduce函数干,编程人员则需要提供这两个函数的具体编程实现。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。