Apache Beam 和 Apache Nifi 之间的区别

Posted

技术标签:

【中文标题】Apache Beam 和 Apache Nifi 之间的区别【英文标题】:Difference between Apache Beam and Apache Nifi 【发布时间】:2017-08-31 01:47:43 【问题描述】:

Apache Beam 和 Apache Nifi 有哪些用例? 看起来它们都是数据流引擎。如果两者有相似的用例,两者哪个更好?

【问题讨论】:

什么更好? 【参考方案1】:

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

Apache NiFi 是一种数据流工具,专注于在系统之间移动数据,从使用 MiNiFi 的小型边缘设备一直到使用 NiFi 的大型数据中心。 NiFi 的重点是视觉命令和控制、数据过滤、数据丰富、数据来源和安全性等功能,仅举几例。使用 NiFi,您无需编写代码并将其部署为一项工作,而是通过 UI 构建一个活的数据流,每个操作都会生效。

流处理平台通常专注于涉及流连接和窗口操作的计算。数据流工具通常是免费的,用于管理从源到处理平台的数据流。

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

【讨论】:

以上是关于Apache Beam 和 Apache Nifi 之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

Apache Nifi 组件开发

Apache NiFi 概述

Apache NiFi深度扩展

Apache NiFi系统管理员指南 [ 一 ]

Apache NiFi Processor实战

如何运行 Apache Beam 集成测试?