Spark Srreaming与Storm的区别

Storm风暴和Spark Streaming都是分布式流处理的开源框架。区别如下:

1、处理延时和吞吐量

Storm处理的是每次传入的一个事件,Spark Streaming是处理某个时间段窗口内的事件流,Storm处理一个事件可以达到秒内的延迟,而Spark Streaming则有几秒钟的延迟。因此,Spark Streaming比Storm的延时更长,但是吞吐量比Storm大。

2、容错、数据保证

Spark Streaming在容错方面提供了对状态计算的更好的支持。在Storm中,任一条单独的记录在经过系统时必须可以被追踪到,所以Storm仅保证所有记录都会至少处理一次,但是从错误中恢复过来时允许出现重复记录。这意味着可变状态有可能被错误的更新两次。

3、支持的API

Storm(由Closure语言开发的)支持JAVA编程,Spark支持Scala编程,也支持java开发。

总结:,如果你需要秒内的延迟,Storm是一个不错的选择,而且没有数据丢失。如果你需要有状态的计算,而且要完全保证每个事件只被处理一次,Spark Streaming则更好。Spark Streaming编程逻辑也可能更容易,因为它类似于批处理程序(Hadoop),特别是在你使用批次(尽管是很小的)时。

另参阅:

http://www.uml.org.cn/sjjm/201408282.asp

时间: 2024-08-10 15:11:32

Spark Srreaming与Storm的区别的相关文章

spark和hive storm mapreduce的比较

Spark Streaming与Storm都可以用于进行实时流计算.但是他们两者的区别是非常大的.其中区别之一就是,Spank Streaming和Stom的计算模型完全不一样,Spark Streaming是基于RDD的,因此需要将一小段时间内的,比如1秒内的数据,收集起来,作为一个RDD.然后再针对这个batch的数据进行处理.而Storm却可以做到每来一条数据, 都可以立即进行处理和计算. 因此,Spark Streaming实际上严格意义上来说,只能称作准实时的流计算框架,而Storm是

hadoop和storm的区别

快,指时延 storm:网络直传,基于内存,流式处理,省去了批量处理收集数据的时间和作业调度时延,用于实时 hadoop:hdfs传输,磁盘作为中间交换的介质,基于任务调度 吞吐:单位时间内处理的数据量 当数据量很大时,比的是吞吐,那hadoop会比storm快 hadoop和storm的区别

spark streaming 与 storm的对比

feature    strom (trident) spark streaming 说明 并行框架 基于DAG的任务并行计算引擎(task parallel continuous computational engine Using DAG) 基于spark的数据并行计算引擎(data parallel general purpose batch processing engine) 数据处理模式 (one at a time)一次处理一个事件(消息)trident: (Micro-batch

Hadoop与 Spark中的Shuffle之区别与联系

Hadoop与 Spark中的Shuffle之区别与联系 2018年08月22日 20:24:46 小爷欣欣 阅读数:175 转自:http://mini.eastday.com/mobile/180114141035935.html mapreduce过程解析(mapreduce采用的是sort-based shuffle),将获取到的数据分片partition进行解析,获得k/v对,之后交由map()进行处理.map函数处理完成之后,进入collect阶段,对处理后的k/v对进行收集,存储在

Spark Streaming与Storm

Spark Streaming处于Spark生态技术栈中,可以和Spark Core和Spark SQL无缝整合:而Storm相对来说比较单一: (一)概述 Spark Streaming Spark Streaming是Spark的核心API的一个扩展,可以实现高吞吐量.具有容错机制的实时流数据的处理.支持从多种数据源获取数据,包括kafka.Flume.Twitter.ZeroMQ以及TCP等,从数据获取之后,可以使用诸如map.reduce.join.window等高级函数进行复杂算法处理

spark中map与mapPartitions区别

在spark中,map与mapPartitions两个函数都是比较常用,这里使用代码来解释一下两者区别 import org.apache.spark.{SparkConf, SparkContext} import scala.collection.mutable.ArrayBuffer object MapAndPartitions { def main(args: Array[String]): Unit = { val sc = new SparkContext(new SparkCon

Hadoop中的Shuffle 与 Spark中的Shuffle得区别与联系

MapReduce过程.Spark和Hadoop以Shuffle为中心的对比分析 mapreduce与Spark的map-Shuffle-reduce过程 mapreduce过程解析(mapreduce采用的是sort-based shuffle) 将获取到的数据分片partition进行解析,获得k/v对,之后交由map()进行处理. map函数处理完成之后,进入collect阶段,对处理后的k/v对进行收集,存储在内存的环形缓冲区中. 当环形缓冲区中的数据达到阀值之后(也可能一直没有达到阀值

MR的shuffle和Spark的shuffle之间的区别

mr的shuffle mapShuffle 数据存到hdfs中是以块进行存储的,每一个块对应一个分片,maptask就是从分片中获取数据的 在某个节点上启动了map Task,map Task读取是通过k-v来读取的,读取的数据会放到环形缓存区,这样做的目的是为了防止IO的访问次数,然后环形缓存区的内存达到一定的阀值的 时候会把文件益写到磁盘,溢出的各种小文件会合并成一个大文件,这个合并的过程中会进行排序,这个排序叫做归并排序 map阶段会涉及到 1.sort排序(默认按字典排序) 2.合并(c

Spark streaming和Storm比较,一图胜千言