2013年参与开发了一个类似storm的自研系统, 2014年使用过spark 4个多月,对这两个系统都有一些了解。

下面是我关于这两个系统的简单对比:

Spark:

1. 基于数据并行,https://en.wikipedia.org/wiki/Data_parallelism。相同的操作作用在数据的不同部分,利用transformation的pipeline提高性能。

2. 本质上是batch processing,latency 通常> 1s。

3. RDD是spark的核心,封装了分布式的细节,即partition和根据lineage恢复数据。shuffle牵涉到数据在网络间的移动,为了容错,中间结果要落地磁盘,因此在一些应用中会是瓶颈。

4. RDD是immutable和coarse granularity,简化了设计。

5. 比较像优化(扩展)了MapReduce的计算框架,并将数据放进了内存,加速迭代计算,非常适合于迭代式应用,比如机器学习,adhoc查询,图计算等。

Storm:

1. 基于任务并行。https://en.wikipedia.org/wiki/Task_parallelism。请求(或者说event)流进系统依次被topology上的task执行。不同task是并行(concurrent)执行。

2. 本质是realtime processing, latency 通常 < 1s。(Storm Trident支持批处理)。

3. 资源管理(在哪些机器上起task)和task间通信是storm的核心。

4. 比较像传统的实时后台系统多个模块(application)拼接成一个大的应用。

所以,可以看到spark和storm有不同的应用场景。能和storm比较的是spark streaming. spark streaming是一个spark的流式处理器,

基本的原理是:将一个时间窗口的数据收集起来,转换成RDD,再根据业务逻辑生成新的RDD,最后遍历结果RDD,把数据发出去。

spark streaming是一个分布式系统,也有分布式系统的复杂性。比如,receiver failure的时候,可能会丢数据。

参考资料:

1. spark paper。http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf

2. committer的报告。Yahoo compares Storm and Spark。http://www.slideshare.net/ChicagoHUG/yahoo-compares-storm-and- spark?ref=http://yahoohadoop.tumblr.com/post/98213421641/storm-and-spark-at-yahoo-why-chose-one-over-the

3. committer的报告。storm和spark streaming的对比。http://www.slideshare.net/ptgoetz/apache-storm-vs-spark-streaming

简单对比Spark和Storm的更多相关文章

  1. 【分布式计算】关于Hadoop、Spark、Storm的讨论

    参考资料: 与 Hadoop 对比,如何看待 Spark 技术?:https://www.zhihu.com/question/26568496 还要不要做大数据:http://sinofool.cn ...

  2. 大数据技术大合集:Hadoop家族、Cloudera系列、spark、storm【转】

    大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好 的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师 ...

  3. MongoDB中insert方法、update方法、save方法简单对比

    MongoDB中insert方法.update方法.save方法简单对比 1.update方法 该方法用于更新数据,是对文档中的数据进行更新,改变则更新,没改变则不变. 2.insert方法 该方法用 ...

  4. .NET轻量级MVC框架:Nancy入门教程(二)——Nancy和MVC的简单对比

    在上一篇的.NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy中,简单介绍了Nancy,并写了一个Hello,world.看到大家的评论,都在问Nancy的优势在哪里?和微软的MVC比 ...

  5. HTTPS, SPDY和 HTTP/2性能的简单对比

    中文原文:HTTPS, SPDY和 HTTP/2性能的简单对比 整理自:A Simple Performance Comparison of HTTPS, SPDY and HTTP/2 请尊重版权, ...

  6. 【转贴】Cortex系列M0-4简单对比

    转载网址:http://blog.sina.com.cn/s/blog_7dbd9c0e01018e4l.html 最近搞了块ST的Cortex-M4处理器,然后下了本文档.分享一下. 针对目前进入大 ...

  7. Hadoop2.0/YARN深入浅出(Hadoop2.0、Spark、Storm和Tez)

    随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发 ...

  8. Nancy和MVC的简单对比

    Nancy和MVC的简单对比 在上一篇的.NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy中,简单介绍了Nancy,并写了一个Hello,world.看到大家的评论,都在问Nancy ...

  9. 大数据 Hadoop,Spark和Storm

    大数据(Big Data)   大数据,官方定义是指那些数据量特别大.数据类别特别复杂的数据集,这种数据集无法用传统的数据库进行存储,管理和处理.大数据的主要特点为数据量大(Volume),数据类别复 ...

随机推荐

  1. .net core4

  2. 字符集转换 字符类型转换 utf-8 gb2312 url

    vs默认是GB2312编码,你看到的程序源代码是,输出结果是,内部存储是, 1 如果你想改变内部存储可以用下面的这些函数 2 如果你想改变源代码的存储方式你可以用文本编辑工具修改之后重新编译 3 如果 ...

  3. myeclipse html乱码

    myeclispe 中 html乱码 在页面的开头写上即可 <meta http-equiv="content-type" content="text/html;  ...

  4. 有向图的欧拉路径POJ2337

    每个单词可以看做一条边,每个字母就是顶点. 有向图欧拉回路的判定,首先判断入度和出度,其实这个题判定的是欧拉通路,不一定非得构成环,所以可以有一个点的顶点入度比出度大1,另外一个点的出度比入度大1,或 ...

  5. 给方法传递参数:ref参数和out参数

    /*--------------------------------------------------- 给方法传递参数:ref参数和out参数 (P106) ------------------- ...

  6. c# hasvalue属性

    // 数据类型? 表示参数的值可以为null空,此时这个参数可调用属性hasvalue来判断,此参数是否有除了null以外的值;进而进行其它的工作 //必须要加?才可用hasvalue属性 priva ...

  7. HTML5 History对象,Javascript修改地址栏而不刷新页面

    一.History对象 History 对象包含用户(在浏览器窗口中)访问过的 URL. History 对象是 window 对象的一部分,可通过 window.history 属性对其进行访问. ...

  8. [转]Delphi中进行延时的4种方法

    1.挂起,不占CPU sleep 2.不挂起,占cpu procedure Delay(msecs:integer); var FirstTickCount:longint; begin FirstT ...

  9. java_log_02

    配置 在第一部分,我们将介绍配置 logback 的各种方法,给出了很多配置脚本例子.在第二部分,我们将介绍 Joran,它是一个通用配置框架,你可以在自己的项目里使用 Joran 一.Logback ...

  10. jsp <%! %> 与 <% %> 区别

    转自huangqiqing123.iteye.com/blog/1922014 <body> <%! //1.可定义方法 public String outMethod(){ ret ...