banner

五类实现框架对海量数据的统计

作者: 大数据观察来源: 大数据观察时间:2017-07-11 20:01:500

    1MapReduce介绍

本文针对海量数据处理过程中的处理速度、存储空间、容错性、访问时间等方面存在的问题,通过对Google MapReduce编程模型的原理、执行流 程等进行分析研究,介绍5种主要的MapReduce实现框架:Hadoop MapReduce、Apache Spark、Phoenix、 Disco、Mars,以期对MapReduce编程模型在行业内的使用前景有一个较全面的认识。

MapReduce介绍

海量数据的处理对服务器CPU、I/O的吞吐都是严峻的考验,传统的技术架构和仅靠单台计算机基于串行的方式越来越不能适应当前海量数据处理的要求。只 有将这些计算进行并行化处理,通过提取出处理过程中存在的可并行工作的分量,用分布式模型来实现这些并行分量的并行执行过程。

MapReduce是由谷歌推出的一个编程模型,是一个能处理和生成超大规模数据集的算法模型,该架构能够在大量普通配置的计算机上实现并行化处理。

MapReduce编程模型结合用户实现的Map和Reduce函数。用户自定义的Map函数处理一个输入的基于key/value pair的集合, 输出中间基于key/value pair的集合,MapReduce库把中间所有具有相同key值的value值集合在一起后传递给Reduce函数, 用户自定义的Reduce函数合并所有具有相同key值的value值,形成一个较小value值的集合。一般地,一个典型的MapReduce程序的执 行流程如图1所示。

MapReduce执行过程主要包括:

将输入的海量数据切片分给不同的机器处理;

执行Map任务的Worker将输入数据解析成key/value pair,用户定义的Map函数把输入的key/value pair转成中间形式的key/value pair;

按照key值对中间形式的key/value进行排序、聚合;

把不同的key值和相应的value集分配给不同的机器,完成Reduce运算;

任务成功完成后,MapReduce的输出存放在R个输出文件中,一般情况下,这R个输出文件不需要合并成一个文件,而是作为另外一个MapReduce的输入,或者在另一个可处理多个分割文件的分布式应用中使用。

2MapReduce主要框架介绍 banner
看过还想看
可能还想看
热点推荐

永洪科技
致力于打造全球领先的数据技术厂商

申请试用
Copyright © 2012-2024开发者:北京永洪商智科技有限公司版本:V10.2
京ICP备12050607号-1京公网安备110110802011451号 隐私政策应用权限