当前位置:
文档之家› Spark流式计算-深入理解Spark Streaming-与Storm的对比
Spark流式计算-深入理解Spark Streaming-与Storm的对比
请在此输入文本请在此输入文本
的,无法做更精细地控制。比如,调度周期1秒请可在能此已输入经文达本到请极在限此输了入,文更本小
的周期意义已经不大。
请在此输入文本请在此输入文本
6
与Storm的对比
• 数据的可靠性也是以批次为粒度的,但好处也很明显,就是有可能实现更大 的吞吐量。另外,得益于Spark平台的良好整合性,完成相同任务的流式计
核心还支持Python、Ruby等其他语言
分布式、容错、可扩展
10
性能测试视硬件、网络、程序等多方因素而定请,在无此法输直接入对文比本,请这里在只此是输引入文本
用一些公开的数据:
请在此输入文本请在此输入文本
Spark Streaming:40万记录/秒/节点
Storm:100万/秒/节点
Scala
Clojure
Scala、Java、Python
Trident 只 支 持 Clojure 、 Java 、 Scala ,
算程序与历史批量处理程序的代码基本相同,添而且加还标可题以使用平台上的其他
模块比如SQL、机器学习、图计算的计算能力,请在在开此输发入效文率本上请占在此有输优入势文。本
请在此输入文本请在此输入文本 请在此输入文本请在此输入文本
7
与Storm的对比
• 而Storm的核心数据抽象是tuple,是命名的值列表,相当于消息,不是分布
• 下表是两者的详细对比,仅供参考。
表 Spark Streaming与Storm对比
计算模型 实时性 数据可靠性
性能
实现语言 编程语言 相同点
Spark Streaming
Storm
小批量计算
实时数据流计理一次
添加标题 核心支持最少一次或最多一次;
T精ri确de一n请t支次在持此全部输最入少文一本次请、最在多此一输次入、文本
添加标题
请在此输入文本请在此输入文本 请在此输入文本请在此输入文本 请在此输入文本请在此输入文本
3
与Storm的对比
添加标题
请在此输入文本请在此输入文本 请在此输入文本请在此输入文本 请在此输入文本请在此输入文本
4
与Storm的对比
• 大体上两者非常接近,而且都处于快速迭代过程中,即便一时的对比可能某 一方占优势,但后者可能很快就追赶上来。比如在性能方面,Spark Streaming刚发布不久,有基准测试显示性能超过Storm几十倍,原因是Spark
5
与Storm的对比
• 但是两者的基因不同,更具体地说就是核心数据抽象不同。这是无法改变的,
而且也不会轻易改变,这样的基因也决定了它们各自最适合的应用场景。前
面已经讲过,Spark Streaming的核心抽象是DSTream,里面是RDD,下层是
Spark核心DAG调度,所以Spark Streaming的这一添基加因标决题定了其粒度是小批量
Streaming采用了小批量模式,而Storm是一条消添息加一标条消题息地计算。但后来
请在此输入文本请在此输入文本
Storm也推出了称为Trident的小批量计算模式,请性在能此应输该入文不本是请差在距此了输入。文而本且 双方都在持续更新,底层的一个通信框架的更新请在或此者输某入个文路本请径在的此代输码入优文本化都 可能让性能有较大的提升。
持各类数据源,基本可以实现流式计算的功能,添但加延标时题无法进一步缩短了。
请在此输入文本请在此输入文本
但Storm的设计初衷就是实时计算,毫秒级的计请算在当此然输不入文在本话请下在,此而输入且文后本期 通过更高级别的Trident也实现了小批次处理功能请。在此输入文本请在此输入文本
9
与Storm的对比
Spark流式计算-深入理解 Spark Streaming-与 Storm的对比
1
与Storm的对比
• Spark一直是后来者,在批处理领域出现在Hadoop MR之后,但凭
借优秀的性能表现大有超越之势。它在流式计算领域也是后来者,
在Spark Streaming出现之前,业界已经有添了加St标or题m并且应用广泛,
式的,所以Storm更擅长细粒度的消息级别的控制,比如延时可以实现毫秒
级,数据可靠性也是以消息为粒度的。
添加标题
请在此输入文本请在此输入文本
请在此输入文本请在此输入文本
请在此输入文本请在此输入文本
8
与Storm的对比
• 核心数据抽象的不同导致了它们在计算模式上的本质区别。Spark Streaming 在本质上其实是像MR一样的批处理计算,但将批处理的周期从常规的几十 分钟级别尽可能缩短至秒级,也算达到了实时计算的延时指标。而且,它支
Storm在2014年9月从0.9.1版本开始正式成请在为此A输p入ac文he本旗请在下此的输顶入文级本项
请在此输入文本请在此输入文本
目。
请在此输入文本请在此输入文本
2
与Storm的对比
• Storm是开源免费的分布式实时计算系统, 可以简单、实时、可靠地处理海量的数据 流,具有高性能、可扩展、自动容错、确 保数据不丢失等特性。它支持非常多的语 言,可以应用在实时分析、在线实时机器 学习、分布式RPC、ETL等众多领域,其结 构如右图所示。