【问题标题】:Difference between SparkStreaming and Storm [closed]SparkStreaming 和 Storm 之间的区别
【发布时间】:2014-11-22 09:09:04
【问题描述】:

我正在对实时 twitter 流数据进行一些分析。我听说过 Spark Streaming。我想知道哪种方法最适合分析实时流数据,因为我的数据从源头快速获取。

【问题讨论】:

  • 我认为这个问题不应该以“基于意见”的方式结束。答案清楚地显示了 Storm 和 Spark Streaming 之间的区别,以及一个是微批处理而另一个不是。

标签: apache-storm spark-streaming


【解决方案1】:

我推荐这个关于这个主题的演讲: http://fr.slideshare.net/ptgoetz/apache-storm-vs-spark-streaming

其实apachestorm是一个真正的流式架构,事件是一个一个管理的,如果你想对它们进行分组,你必须为此设计一个拓扑。它在延迟和设计方面是最强大的。但它当然很复杂,你必须正确设计你想要的。

另一方面,apache spark 是一种微批处理架构,它类似于 hadoop,但每 x 秒执行一次,在定义的时间窗口内生成微批处理数据。因为它看起来确实像一个批处理解决方案,所以它看起来更简单,如果您不希望延迟

【讨论】:

    【解决方案2】:

    除了 @zenbeni 链接的非常好的演示文稿之外,我想根据 Storm 和 Spark 流媒体的第一手经验添加一些具体点,特别是关于您的用例(Twitter 数据)。

    • Twitter 本身将 Storm 用于其实时流处理管道的许多部分。所以如果你想做的处理类型类似,Storm是个不错的选择。
    • Storm 的多语言支持非常棒。但是很难绕过错误。例如,如果您从 Java Bolt 调用 Python 代码并且 Python Bolt 中发生了异常,则很难将此异常传播回 Java 代码。
    • 如果您的分析仅基于一条推文,Storm 可能会更好。但是,如果您需要进行一些聚合或迭代分析,您还必须在 Storm 中进行微批处理。这实质上意味着您必须将状态存储在一堆螺栓中。
    • 最后,通常需要同时进行流处理和批处理。当您需要将流处理与 batchinteractiveiterative 处理混合使用时,Spark 会大放异彩。事实上,我不清楚你应该如何迭代处理 Storm。

    【讨论】:

      猜你喜欢
      • 2015-08-22
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 2020-05-10
      • 2014-09-20
      • 2010-10-28
      相关资源
      最近更新 更多