Apache storm SparkStreaming和Storm的区别

Apache storm SparkStreaming和Storm的区别,apache-storm,spark-streaming,Apache Storm,Spark Streaming,我正在对实时推特流媒体数据进行分析。我听说了Spark流媒体。我想知道哪种方法最适合对实时流媒体数据进行分析,因为我的数据来源非常快。我建议就这一主题进行此演示: 事实上,ApacheStorm是一个真正的流式体系结构,事件一个接一个地管理,如果您想对它们进行分组,您必须为此设计一个拓扑。它在延迟和设计方面是最强大的。但它当然是复杂的,你必须正确地设计你想要的 另一方面,ApacheSpark是一种微批处理体系结构,它与hadoop类似,但每x秒执行一次,在定义的时间窗口上生成微批数据。由于它

我正在对实时推特流媒体数据进行分析。我听说了Spark流媒体。我想知道哪种方法最适合对实时流媒体数据进行分析,因为我的数据来源非常快。

我建议就这一主题进行此演示:

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


另一方面,ApacheSpark是一种微批处理体系结构,它与hadoop类似,但每x秒执行一次,在定义的时间窗口上生成微批数据。由于它看起来确实像一个批处理解决方案,因此它看起来更简单,如果您不想延迟<几秒钟,它就足够了。

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

  • Twitter本身在实时流处理管道的许多部分使用Storm。因此,如果您想要执行的处理类型相似,Storm是一个不错的选择
  • Storm的多语言支持非常好。但很难传递错误。例如,如果您从Java螺栓调用Python代码,并且Python螺栓中发生异常,那么将此异常传播回Java代码并不容易
  • 如果你的分析仅仅基于一条推特,Storm可能会更好。然而,若你们需要做一些聚合或迭代分析,你们也必须在暴风雨中进行微博客。这本质上意味着您必须将状态存储在一堆螺栓中
  • 最后,通常需要同时进行流处理和批处理。当您需要将流处理与批处理、交互式和迭代处理相结合时,Spark将大放异彩。事实上,我不清楚应该如何进行迭代处理
我认为这个问题不应该以“基于意见”来结束。答案清楚地显示了Storm和Spark流媒体之间的区别,以及一个是如何进行微博客而另一个不是。