2017-04-05 97 views

回答

13

Apache Beam是流处理系统(如Apache Flink,Apache Spark(streaming),Apache Apex和Apache Storm)的抽象层。它允许您使用标准API编写代码,然后使用任何底层平台执行代码。因此,理论上讲,如果您针对Beam API编写代码,则该代码可以在Flink或Spark Streaming上运行,而无需更改任何代码。

Apache NiFi是一个数据流工具,专注于将系统之间的数据移动,从使用MiNiFi的非常小型的边缘设备一直转移到带有NiFi的大型数据中心。 NiFi的重点在于视觉指挥和控制,数据过滤,数据丰富,数据来源和安全等功能,仅举几例。使用NiFi,您不会编写代码并将其作为工作进行部署,而是通过用户界面构建生动的数据流,并在每个操作中发挥作用。

流处理平台通常专注于涉及流和窗口操作联合的计算。数据流工具经常是互补的,用于管理从数据源到处理平台的数据流。

NiFi和流处理系统之间实际上有几个集成点...... Flink,Spark,Storm和Apex都有一些组件可以从NiFi中获取数据,或者将数据推回NiFi。另一种常见模式是使用MiNiFi + NiFi将数据导入Apache Kafka,然后让Kafka使用流处理系统。