面向大数据处理的数据查询、统计、分析、挖掘等需求,促生了大数据计算的不同计算模式。目前流行的分布式计算框架有MapReduce,Spark 和Storm。这三个框架各有优势,现在都属于Apache 基金会下的顶级项目,下面将对三个框架的特点与适用场景进行分析。
1. MapReduce
MapReduce 是一种简洁的并行计算模型,它在系统层面解决了扩展性、容错性等问题,通过接收用户编写的Map 函数和Reduce 函数,自动地在可伸缩的大规模集群上并行执行,从而可以处理和分析大规模的数据。MapReduce 是三者中出现最早,知名度最大的分布式计算框架,最早由Google 提出,原生支持Java 语言开发MapReduce 程序。
MapReduce 主要适用于大批量的集群任务,海量数据的离线分析处理,大规模Web 信息搜索和数据密集型并行计算。
2. Spark
Spark 是由加州伯克利大学使用Scala 语言开发,类似于MapReduce 的通用并行计算框架。Spark 是一个基于内存计算的开源集群计算系统,目的是更快速的进行数据分析,因而其在时效性上有了很大提高。中间结果可以保存在内存中,从而对需要迭代计算和有较高时效性要求的系统提供了很好的支持,多用于能容忍小延时的推荐与计算系统。(www.daowen.com)
Spark 主要适用于需要多次操作特定数据集的应用场合,需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小。
3. Storm
Storm 是由Twitter 开发的,具有容错的,全内存,流式实时计算框架,由Java和Clojure 写成。在实时分析、性能监测等需要高时效性的领域广泛采用,而且它理论上支持所有语言,只需要少量代码即可完成适配器。
Storm 可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。由于Storm 的处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式RPC 框架来使用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。