Apache Flink和Twitter Heron哪个更好?

11

有很多问题在比较Flink和Spark Streaming,Flink和Storm以及Storm和Heron。

这个问题的起源是因为Apache Flink和Twitter Heron都是真正的流处理框架(不像Spark Streaming那样是微批处理)。Twitter去年停用了Storm并使用了Heron代替(基本上是重制的Storm)。

有Slim Baltagi关于Flink和Flink vs Spark的演示文稿: https://www.youtube.com/watch?v=G77m6Ou_kFA

有Ilya Ganelin对各种流处理框架的研究: https://www.youtube.com/watch?v=KkjhyBLupvs

有关于Flink vs Storm的非常有趣的想法: What is/are the main difference(s) between Flink and Storm?

但我还没有看到新的Storm/Heron与Apache Flink之间的比较。

这两个项目都比较年轻,都支持使用之前编写的Storm应用程序和许多其他功能。Flink更适合于Hadoop生态系统,而Heron更适合于基于Twitter的生态系统堆栈。

有什么想法吗?


你看过Twitter关于Heron的论文吗?它描述了两个系统之间的主要区别。但请记住,自那篇论文发表以来,Storm取得了很大进展:https://dl.acm.org/citation.cfm?id=2742788 如果你理解了Storm和Heron之间的差异,并且对Flink有所了解,你就会看到它与Flink的不同之处。 - Matthias J. Sax
2个回答

2
所有在参考文章中比较Apache Flink和Apache Storm的要点同样适用于Twitter的Heron。Heron提供与Storm完全相同的语义和功能。实际上,Heron最好被理解为Storm的重新实现,更适合Twitter的运营要求。请保留HTML标签。

谢谢。是的,这是真的,但Heron是经过优化的,它可以支持动态拓扑修改和扩展等功能,这可能比Flink更优越,因为Flink目前还不支持这些功能。事实上,Heron重新实现了Storm,这一点很有趣,因为它增加了新的功能,改变了对现有框架的看法。 - experimenter
3
自从 Storm 1.0 版本推出以来,该系统得到了重大改进,因此不是一切都仍然正确。Flink 也是如此。您应该始终比较不同版本,或者至少要记住,由于这些项目的发展速度非常快,因此 Stack Overflow 上的答案可能已经过时。 - Matthias J. Sax
1
抱歉,我想要澄清的是,Heron并没有增加任何与语义、处理保证、动态拓扑修改、动态缩放等相关的新主要功能。改进的性质是操作性的,但与Storm相比,并没有新增任何主要功能,而在某些方面,Storm实际上具有更先进的功能。不过,Heron非常适合Twitter的运营需求。 - Jamie Grier

2

Heron

Heron 是由 Twitter 开发并于 2018 年 2 月 26 日捐赠给 Apache 的流处理引擎。根据 Twitter 的说法,吞吐量比 Storm 高 10-14 倍,在所有实验中,延迟也比 Storm 低 5-15 倍。

除了吞吐量和延迟之外,它还提供了以下功能:

  • 易于调试(每个任务都在进程级别的隔离环境中运行)。
  • 处理突发和拥塞(使用反压机制)。
  • 与Storm完全向后兼容,这意味着只需要更改 pom 文件。

https://blog.twitter.com/engineering/en_us/a/2015/flying-faster-with-twitter-heron.html https://apache.github.io/incubator-heron/


1
鼓励提供外部资源链接,但请添加上下文说明链接的内容和目的。在引用重要链接时,请引用最相关的部分,以防目标站点无法访问或永久离线。 - baduker
@baduker 感谢您的建议。已经从我的发现中提到了关键点,将为其添加更多背景信息。 - pankaj birat
twitter.github.io/heron 的链接已经失效。 - Mike Harris

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