spark与storm比对与选型

2017年02月12日 11:42:13

大数据实时处理平台市场上产品众多,本文着重讨论spark与storm的比对,最后结合适用场景进行选型。


一、spark与storm的比较

比较点

Storm

Spark Streaming

实时计算模型

纯实时,来一条数据,处理一条数据

准实时,对一个时间段内的数据收集起来,作为一个RDD,再处理

实时计算延迟度

毫秒级

秒级

吞吐量

事务机制

支持完善

支持,但不够完善

健壮性 / 容错性

ZooKeeper,Acker,非常强

Checkpoint,WAL,一般

动态调整并行度

支持

不支持


二、Spark Streaming与Storm的应用场景 


适用Storm的场景:

1、需要纯实时,不能忍受1秒以上延迟的场景下使用,比如实时金融系统,要求纯实时进行金融交易和分析

2、对于实时计算的功能中,要求可靠的事务机制和可靠性机制,即数据的处理完全精准,一条也不能多,一条也不能少,也可以考虑使用Storm

3、若还需要针对高峰低峰时间段,动态调整实时计算程序的并行度,以最大限度利用集群资源(通常是在小型公司,集群资源紧张的情况),也可以考虑用Storm

4、如果一个大数据应用系统,它就是纯粹的实时计算,不需要在中间执行SQL交互式查询、复杂的transformation算子等,那么用Storm是比较好的选择


适用Spark Streaming的场景:

1、如果对上述适用于Storm的三点,一条都不满足的实时场景,即:不要求纯实时,不要求强大可靠的事务机制,不要求动态调整并行度,那么可以考虑使用Spark Streaming

2、考虑使用Spark Streaming最主要的一个因素,应该是针对整个项目进行宏观的考虑,即:如果一个项目除了实时计算之外,还包括了离线批处理、交互式查询等业务功能,而且实时计算中,可能还会牵扯到高延迟批处理、交互式查询等功能,那么就应该首选Spark生态,用Spark Core开发离线批处理,用Spark SQL开发交互式查询,用Spark Streaming开发实时计算,三者可以无缝整合,给系统提供非常高的可扩展性 Spark Streaming与Storm的优劣分析事实上,Spark Streaming绝对谈不上比Storm优秀。

总之,这两个框架在实时计算领域都很优秀,只是擅长的细分场景并不相同。Spark Streaming仅仅在吞吐量上比Storm要优秀,而吞吐量这一点,也是历来挺Spark Streaming贬Storm的人着重强调的。但是问题是,是不是在所有的实时计算场景下,都那么注重吞吐量?不尽然。因此,通过吞吐量说Spark Streaming强于Storm,不靠谱。事实上,Storm在实时延迟度上,比Spark Streaming就好多了,前者是纯实时,后者是准实时。而且,Storm的事务机制、健壮性 / 容错性、动态调整并行度等特性,都要比Spark Streaming更加优秀。Spark Streaming,有一点是Storm绝对比不上的,就是:它位于Spark生态技术栈中,因此Spark Streaming可以和Spark Core、Spark SQL无缝整合,也就意味着,我们可以对实时处理出来的中间数据,立即在程序中无缝进行延迟批处理、交互式查询等操作。这个特点大大增强了Spark Streaming的优势和功能。

hadoop、storm和spark的区别、比较

1、hadoop、Storm该选哪一个?为了区别hadoop和Storm,该部分将回答如下问题: 1.hadoop、Storm各是什么运算 2.Storm为什么被称之为流式计算系统 3.hado...
  • bitcarmanlee
  • bitcarmanlee
  • 2016-11-05 21:28:05
  • 16128

大数据经典学习路线(storm,spark)

1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用linux,熟练安装Linux上的软件,了解熟悉负载均衡、高可靠等集群相关概念,搭建互联网高并发、高可靠的服务...
  • zhubing10061210
  • zhubing10061210
  • 2017-06-19 09:30:16
  • 2010

Storm介绍及与Spark Streaming对比

1 Storm介绍Storm是由Twitter开源的分布式、高容错的实时处理系统,它的出现令持续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要求。Storm常用于在实时分析、在线机器...
  • xiangxizhishi
  • xiangxizhishi
  • 2018-01-20 08:18:07
  • 420

从Storm和Spark 学习流式实时分布式计算的设计

最近我在做流式实时分布式计算系统的架构设计,而正好又要参见CSDN博文大赛的决赛。本来想就写Spark源码分析的文章吧。但是又想毕竟是决赛,要拿出一些自己的干货出来,仅仅是源码分析貌似分量不够。因此,...
  • anzhsoft2008
  • anzhsoft2008
  • 2014-08-02 17:06:51
  • 41754

两款高性能并行计算引擎Storm和Spark比较

原文发表于踏得网。Spark基于这样的理念,当数据庞大时,把计算过程传递给数据要比把数据传递给计算过程要更富效率。每个节点存储(或缓存)它的数据集,然后任务被提交给节点。所以这是把过程传递给数据。这和...
  • iefreer
  • iefreer
  • 2014-06-20 16:29:55
  • 45024

storm、jstorm 调研系列(一)----jstorm介绍以及与spark的比较,外加一些基础概念

storm、jstorm是干什么的storm是一款开源的、分布式的、低延迟的、可扩展的、容错的实时计算框架,采用clojure和java的混合编程,总体两者的代码总量是55开的,但clojure语言具...
  • yc_pku
  • yc_pku
  • 2016-08-14 16:38:19
  • 4418

Storm的wordcount实战示例

有关strom的具体介绍,本文不再过多叙述,不了解的朋友可参考之前的文章  http://qindongliang.iteye.com/category/361820  本文主要以一个简单的wor...
  • u010454030
  • u010454030
  • 2016-09-18 17:37:31
  • 5563

spark 与storm的对比及适用场景

学习大数据有一段时间了,学完spark 和strom 后,就希望这两个实时处理系统做个对比,以便于在以后的技术选型方面有很好的把握。 转载如下: http://www.cnblogs.com/yaoh...
  • cainiaoxiaozhou
  • cainiaoxiaozhou
  • 2017-08-16 18:18:57
  • 1155

storm spark 的选择区别

实时商务智能这一构想早已算不得什么新生事物(早在2006年维基百科中就出现了关于这一概念的页面)。然而尽管人们多年来一直在对此类方案进行探讨,我却发现很多企业实际上尚未就此规划出明确发展思路、甚至没能...
  • miketom155
  • miketom155
  • 2015-12-17 17:09:19
  • 3319

Kafka 设计与原理详解

一、Kafka简介1.1 背景历史当今社会各种应用系统诸如商业、社交、搜索、浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几个挑战: 如何收集这些巨大的信息 如何分析它 如何及时...
  • suifeng3051
  • suifeng3051
  • 2015-08-28 16:36:32
  • 76029
收藏助手
不良信息举报
您举报文章:spark与storm比对与选型
举报原因:
原因补充:

(最多只允许输入30个字)