Apache Apex 与 Apache Flink

Posted

技术标签:

【中文标题】Apache Apex 与 Apache Flink【英文标题】:Apache Apex vs Apache Flink 【发布时间】:2017-08-24 12:40:02 【问题描述】:

由于两者都是一次处理事件的流式框架,这两种技术/流式框架之间的核心架构差异是什么?

另外,在哪些特定用例中一个比另一个更合适?

【问题讨论】:

【参考方案1】:

正如您所提到的,两者都是实时内存计算的流平台。但仔细观察会发现一些架构差异。

    Apex 是纱线原生架构,它充分利用纱线进行调度、安全和多租户,而 Flink 与纱线集成。 Apex 可以使用 yarn 在操作员(容器)级别进行资源分配。 分区:Apex 支持多种复杂的流分区方案,还允许控制操作员位置和流位置。 Flink 支持简单的哈希分区和自定义分区。 Apex 允许对拓扑进行动态更改,而无需关闭应用程序。 Apex 允许在运行时更新应用程序,因此您可以添加和删除运算符、更新运算符的属性或在运行时自动扩展应用程序。 Apache Flink 不支持任何这些功能。 缓冲服务器:在操作员之间有一个称为缓冲服务器的消息总线。订阅者可以连接到缓冲服务器并从特定偏移量获取数据。这是窗口感知的,只要没有订阅者需要,它就会保存数据。 容错:Apex 具有增量恢复模型,故障时只能重启部分拓扑,无需回源,在 flink 中回源。 Apex 有高级 api 和低级 api。 Flink 只有高级 api。 Apex 有一个名为 Apache Malhar 的库,其中包含大量经过良好测试的连接器和处理运算符,可以轻松重复使用。 最后,Apex 更专注于大数据应用程序的产品化,因此具有许多有助于轻松开发和维护应用程序的功能。

注意:我是 Apache Apex 的提交者,所以我听起来可能对 Apex 有偏见 :)

【讨论】:

不需要你的笔记 :-) ...它听起来确实有偏见(这与不真实不同),我可以看到你有一把斧头要磨。 Flink 更擅长什么?

以上是关于Apache Apex 与 Apache Flink的主要内容,如果未能解决你的问题,请参考以下文章

Apache Apex 如何处理背压?

包 org.apache.apex.malhar.lib 不存在

如何在 Apache Apex 中使用 JSON 创建 DAG?

无法启动 apache apex cli

如何从 Apache Apex 应用程序内部获取 ApplicationID?

Apache Apex 中的操作员生命周期是啥?