由于这两种技术都是一次处理事件的流框架,那么这两种技术/流框架之间的核心体系结构区别是什么?另外,有哪些特定的用例一个比另一个更合适?
vyu0f0g11#
正如您所提到的,这两个平台都是流媒体平台,可以实时进行内存计算。但是当你仔细观察时,会发现一些架构上的差异。apex是yarn的本地架构,它充分利用yarn进行调度、安全和多租户,其中flink与yarn集成在一起。apex可以使用yarn在操作员(容器)级别进行资源分配。分区:apex支持多种复杂的流分区方案,还允许控制操作符位置和流位置。flink支持简单散列分区和自定义分区。apex允许动态更改拓扑,而不必关闭应用程序。apex允许在运行时更新应用程序,以便您可以添加和删除运算符、更新运算符的属性或在运行时自动缩放应用程序。apacheflink不支持这些功能。缓冲服务器:操作员之间有一个称为缓冲服务器的消息总线。订户可以连接到缓冲服务器并从特定偏移量获取数据。这是窗口感知的,只要没有订户需要它,它就会保存数据。容错性:apex具有增量恢复模型,在发生故障时只能重新启动部分拓扑,无需返回源代码,在flink中返回源代码。apex有高级api和低级api。flink只有高级api。apex有一个名为apachemalhar的库,它有大量经过良好测试的连接器和处理操作符,可以很容易地重用。最后,apex更专注于大数据应用的产品化,因此它有许多特性,有助于简化应用程序的开发和维护。注意:我是ApacheApex的提交者,所以听起来可能对apex有偏见:)
1条答案
按热度按时间vyu0f0g11#
正如您所提到的,这两个平台都是流媒体平台,可以实时进行内存计算。但是当你仔细观察时,会发现一些架构上的差异。
apex是yarn的本地架构,它充分利用yarn进行调度、安全和多租户,其中flink与yarn集成在一起。apex可以使用yarn在操作员(容器)级别进行资源分配。
分区:apex支持多种复杂的流分区方案,还允许控制操作符位置和流位置。flink支持简单散列分区和自定义分区。
apex允许动态更改拓扑,而不必关闭应用程序。apex允许在运行时更新应用程序,以便您可以添加和删除运算符、更新运算符的属性或在运行时自动缩放应用程序。apacheflink不支持这些功能。
缓冲服务器:操作员之间有一个称为缓冲服务器的消息总线。订户可以连接到缓冲服务器并从特定偏移量获取数据。这是窗口感知的,只要没有订户需要它,它就会保存数据。
容错性:apex具有增量恢复模型,在发生故障时只能重新启动部分拓扑,无需返回源代码,在flink中返回源代码。
apex有高级api和低级api。flink只有高级api。
apex有一个名为apachemalhar的库,它有大量经过良好测试的连接器和处理操作符,可以很容易地重用。
最后,apex更专注于大数据应用的产品化,因此它有许多特性,有助于简化应用程序的开发和维护。
注意:我是ApacheApex的提交者,所以听起来可能对apex有偏见:)