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. JSP中的路径

    我的原则 所有路径一律使用绝对路径,就是以"/"开头的或者带host的路径.形如: /imgs/1.jpg <%= request.getContextPath()%> ...

  2. App抓包数据包之Paros的安装及使用

    1.在应用程序开发过程中,会遇到很多网络访问问题,自己没有能力提供后台服务,这时就可以抓取网络上的数据包,获取数据接口,应用在程序中.下面介绍使用paros抓取网络数据包得步骤. 2.要使用paros ...

  3. [Angular 2] Controlling how Styles are Shared with View Encapsulation

    Style and View Encapsulation is best understood by seeing how each option (Emulated, Native, and Non ...

  4. Linux下得到显示屏参数的方法

    先安装一个软件,然后使用权ddcprobe可以查看当前支持的分辨率和刷新频率#sudo apt-get install xresprobe运行 #sudo ddcprobe会得到下面的信息vbe: V ...

  5. 第一篇:K-近邻分类算法原理分析与代码实现

    前言 本文介绍机器学习分类算法中的K-近邻算法并给出伪代码与Python代码实现. 算法原理 首先获取训练集中与目标对象距离最近的k个对象,然后再获取这k个对象的分类标签,求出其中出现频数最大的标签. ...

  6. Linux开发工具之Makefile(下)

    二.Makefile(下) 01.make常用内嵌函数 函数调用   $(function arguments) $(wildcard PATTERN)   当前目录下匹配模式的文件   例如:src ...

  7. supervisor 部署文档

    supervisor 部署文档 supervisor 需要Python支持,如果不用系统的supervisor,单独安装python python 安装 #依赖 yum install python- ...

  8. oracle的sql优化

    http://www.cnblogs.com/rootq/archive/2008/11/17/1334727.html

  9. JS 点击事件失效

    有时候,会发现js失效 ,代码如果是如下的时候 <input type="button" onclick="change()"value="変更 ...

  10. wpf Content数据绑定StringFormat起作用的原理和解决(转)

    1.简单示例: <Window x:Class="WpfOne.Bind.Bind6" xmlns="http://schemas.microsoft.com/wi ...