简单对比Spark和Storm
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的更多相关文章
- 【分布式计算】关于Hadoop、Spark、Storm的讨论
参考资料: 与 Hadoop 对比,如何看待 Spark 技术?:https://www.zhihu.com/question/26568496 还要不要做大数据:http://sinofool.cn ...
- 大数据技术大合集:Hadoop家族、Cloudera系列、spark、storm【转】
大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好 的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师 ...
- MongoDB中insert方法、update方法、save方法简单对比
MongoDB中insert方法.update方法.save方法简单对比 1.update方法 该方法用于更新数据,是对文档中的数据进行更新,改变则更新,没改变则不变. 2.insert方法 该方法用 ...
- .NET轻量级MVC框架:Nancy入门教程(二)——Nancy和MVC的简单对比
在上一篇的.NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy中,简单介绍了Nancy,并写了一个Hello,world.看到大家的评论,都在问Nancy的优势在哪里?和微软的MVC比 ...
- HTTPS, SPDY和 HTTP/2性能的简单对比
中文原文:HTTPS, SPDY和 HTTP/2性能的简单对比 整理自:A Simple Performance Comparison of HTTPS, SPDY and HTTP/2 请尊重版权, ...
- 【转贴】Cortex系列M0-4简单对比
转载网址:http://blog.sina.com.cn/s/blog_7dbd9c0e01018e4l.html 最近搞了块ST的Cortex-M4处理器,然后下了本文档.分享一下. 针对目前进入大 ...
- Hadoop2.0/YARN深入浅出(Hadoop2.0、Spark、Storm和Tez)
随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发 ...
- Nancy和MVC的简单对比
Nancy和MVC的简单对比 在上一篇的.NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy中,简单介绍了Nancy,并写了一个Hello,world.看到大家的评论,都在问Nancy ...
- 大数据 Hadoop,Spark和Storm
大数据(Big Data) 大数据,官方定义是指那些数据量特别大.数据类别特别复杂的数据集,这种数据集无法用传统的数据库进行存储,管理和处理.大数据的主要特点为数据量大(Volume),数据类别复 ...
随机推荐
- 布隆过滤器的java实现
package com.kaikeba.data.jobspider.util; import java.util.BitSet; public class Bloomfilter { private ...
- Linux一键安装PHP/JAVA环境OneinStack
OneinStack 是一款PHP/JAVA环境一键配置工具. OneinStack包含以下组合 lnmp(Linux + Nginx+ MySQL ...
- NOI2003 文本编辑器
练手QAQ #include<iostream> #include<algorithm> #include<cstdio> #include<cstdlib& ...
- ORACLE 11G EXP导出空表方法
EXP在导出11G的库的时候,与过去10G,9I的版本有很大的差别. 就是没有数据的表是不会分配空间的. 从Oracle 11.2.0.1版本开始,Oracle又提供了一种新的空间分配方法: Crea ...
- ThinkPHP pdo连接Oracle的配置写法,提示报错
'DB_TYPE' => 'pdo', // 数据库类型 'DB_USER' => 'user101', // username 'DB_PWD' => 'zb~!@#$%', // ...
- HDFS Users Guide--官方文档
HDFS Users Guide Purpose Overview Prerequisites Web Interface Shell Commands DFSAdmin Command Second ...
- 【JavaScript】我的JavaScript技术总结第一篇——编程细节
遍历数组 for (var i=0, l=arr.length; i<l; i++) 这样写的一个好处就是让每次循环少一步获取数组对象长度的操作,数组长度越长,价值越明显. 判断变量的真假 if ...
- python增删改查
###增删改查 names = ["zhangding","wangxu","wudong","cheng"] #增na ...
- ACCSESS数据库导入到SQL SEVERES2005
首先打开Access数据库然后选择一张表,右击选择要导入数据库的类型(此处已sql2005为例) 然后选择新建 点击下一步 选择导入数据库类型(sql) 输入一个名称,在前面能用到(此处建的是250) ...
- 如何在ASP.NET端获取屏幕宽度
using System.Windows.Forms; 首先引用上面的命名空间. 然后在代码中获取屏幕信息.如下代码: System.Windows.Forms.Screen screen = Sys ...