Apache Storm、Apache Samza和Apache Spark的比较

11

我曾经使用过Storm和Spark,但是Samza还比较新。

我不明白为什么要引入Samza,当Storm已经可以用于实时处理。Spark提供了内存近似实时处理,并拥有其他非常有用的组件,如graphx和mllib。

Samza带来了哪些改进?还有哪些改进是可能的呢?


还有Kafka流:http://kafka.apache.org/documentation/streams和http://docs.confluent.io/current/streams/index.html - Matthias J. Sax
顺便提一下:Samza已经在2013年进入了Apache孵化器 - 这并不是真正的新闻:http://incubator.apache.org/projects/samza.html - Matthias J. Sax
有趣的问题,但如果像这样表述,它在StackOverflow上是不相关的:太广泛且容易受到主观意见的影响。尝试发布一个更具体的问题,只能用事实回答。 - Honza Zidek
@HonzaZidek,如果我可以将这个问题限制在特定的问题上就好了。虽然我怀疑这可能有点宽泛,但我没有找到更好的平台来问这样的问题。 - Amit Kumar
1个回答

16

这篇文章很好地总结了不同流处理技术之间的差异和优缺点。

我只想补充一点,Samza并不算是很新的技术,但它在使用Kafka作为后端时具有一定的简洁性,而其他技术则会在简洁性方面做出牺牲以变得更加通用。Samza由创建Kafka的人员推出,他们也是Kappa Architecture背后的人员,主要是前LinkedIn的Jay Kreps。这非常棒。

此外,在实时流处理方面,Samza、Spark Streaming中的微批处理(与Spark不完全相同)以及Storm中的spouts和bolts与元组的编程模型完全不同。

这些技术都没有“更好”的一方。它们的选择取决于您的用例、团队的优势、API与您的思维模式的匹配度以及支持质量等因素。

您还忘记了Apache Flink和Twitter的Heron,他们开发Heron是因为Storm开始让他们失望了。不过,像Twitter这样大规模运营的公司非常少。


还有Kafka Streams:http://kafka.apache.org/documentation/streams 和 http://docs.confluent.io/current/streams/index.html - Matthias J. Sax
1
不错。忘了那个。主要是要认识到有这么多的选择。 - Vidya
1
Apache Apex 这就是其中之一 :) - Matthias J. Sax

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接