【问题标题】:What 's difference for the latency between Storm and Spark Streaming when dealing with tuples\messages?在处理元组\消息时,Storm 和 Spark Streaming 之间的延迟有什么区别?
【发布时间】:2017-05-29 01:54:14
【问题描述】:

1,根据下面的描述,Storm 和 Spark Streaming 都处理批量或小/微批量的消息/元组? https://storm.apache.org/releases/2.0.0-SNAPSHOT/Trident-tutorial.html

2,如果上述问题的答案是肯定的,这意味着两种技术在处理消息/元组时都有延迟?如果是这种情况,为什么我经常听说 Storm 的延迟比 Spark Streaming 更好,例如下面的文章? https://www.ericsson.com/research-blog/data-knowledge/apache-storm-vs-spark-streaming/

3,从 Trident-tutorial 中描述: “通常,这些小批量的大小将在数千或数百万个元组的数量级上,具体取决于您的传入吞吐量。” 那么小批量的真正大小是多少?数千或数百万个元组?如果是,Storm 如何保持短延迟?

https://storm.apache.org/releases/2.0.0-SNAPSHOT/Trident-tutorial.html

【问题讨论】:

    标签: apache-spark apache-storm


    【解决方案1】:

    Storm 的核心 api 尝试在事件到达时对其进行处理。它是一次事件处理模型,可以导致非常低的延迟。

    Storm 的 Trident 是一个微批处理模型,建立在 Storm 的核心 API 之上,用于提供精确一次的保证。 Spark 流式传输也基于微批处理,在延迟方面与 trident 相当。

    因此,如果您正在寻找极低延迟的处理,Storm 的核心 api 将是您的最佳选择。然而,这保证了至少一次处理,并且有机会在失败的情况下接收到重复的事件,并且应用程序应该处理这个。

    看看来自 yahoo [1] 的流媒体基准,它可以提供更多见解。

    [1]https://yahooeng.tumblr.com/post/135321837876/benchmarking-streaming-computation-engines-at

    【讨论】:

    • 感谢您的澄清。
    猜你喜欢
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 2020-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多