Apache NiFi 教程:什么是 NiFi? Archi结构与安装
Apache NiFi 教程摘要
本 apache NiFi 教程涵盖了从零开始的所有基础到高级主题。您将学习 NiFi 定义、历史、架构、功能、安装过程、用例等概念。您还将了解为什么需要使用 apache NiFi 以及运行 apache NiFi 的最佳实践。
什么是 Apache NiFi?
阿帕奇尼菲 是一款开源软件,用于自动化和管理系统之间的数据流。它是一个功能强大且可靠的系统,用于处理和分发数据。它提供基于 Web 的用户界面来创建、监控和控制数据流。它具有高度可配置和可修改的数据流流程,可在运行时修改数据。
Apache NiFi 可以通过开发自定义组件轻松扩展。
为什么使用 Apache NIfi?
以下是使用 Apache Nifi 的原因:
- 允许您进行数据提取,从众多数据源将数据拉入 NiFi 并创建流文件
- 它提供实时控制,帮助您管理任何源和目标之间的数据移动
- 在企业层面可视化 DataFlow
- 提供通用工具和扩展
- 允许您利用现有的库和 Java 生态系统功能
- 帮助组织将 Nifi 与现有基础设施集成
- NiFi 旨在以集群形式横向扩展,从而保证数据传输
- 在提供见解和内联文档的流程公告中可视化和监控性能、行为
- 帮助您单独或在组级别启动和停止组件
- 它可以帮助您监听、获取、拆分、聚合、路由、转换和拖放数据流
Apache NiFi 的历史
- 美国国家安全局历时八年开发
- 2014 年- 捐赠给 Apache 软件基金会 Foundation
- 2015 年——NiFi 成为 Apache 项目套件的正式组成部分
- 此后,Apache NiFi 每 6-8 周发布一次新更新
镍铁 Archi质地
Apache NiFi 具有经过深思熟虑的架构。一旦从外部源获取数据,它就会在 Apache NiFi 架构中以 FlowFile 的形式表示。
以下是 NiFi 架构的关键组件
Nifi 组件 | 描述 |
---|---|
流文件 | FlowFile 是附加了元信息的原始数据。它不仅允许您处理 CSV 或其他基于记录的数据,还允许您处理图片、视频、音频或任何其他二进制数据。 |
流文件处理器 | 执行作为 NiFi 中数据流构建块的工作。 |
流量控制器 | 记录进程的连接方式。它管理所有进程使用的线程及其分配。 |
Web服务器 | Web 服务器托管 NiFi 基于 HTTP 的命令和 API。 |
延期 | 有许多类型的 NiFi 扩展可以在 JVM 内运行和执行。 |
连接升级包 | 充当包含队列的处理器与影响数据路由位置的关系之间的链接。 |
背压 | 通过控制队列中存储的流文件的数量或数据大小来阻止系统超负荷。 |
进程组 | 进程组是一组进程及其连接的集合,借助端口接收和发送数据。 |
流文件存储库 | 在 FlowFile 存储库中,NiFi 跟踪有关流中处于活动状态的给定 FlowFile 的详细信息状态。 |
内容库 | 内容存储库是给定 FlowFile 的实际内容字节存在的区域。 |
来源存储库 | 出处存储库是收集所有出处事件数据的区域。 |
Apache NiFi 功能
- NiFi 支持缓冲所有排队数据,并提供背压能力,因为这些队列可能达到指定的限制
- NiFi 允许设置一个或多个优先级方案
- 为许多数据源提供连接处理器
- 支持任何运行 Java
- 适合连接受限的地方
- 支持故障排除和流程优化
- 提供基于角色的身份验证/授权
- 允许下载、恢复和重播单个文件
- 构建您的处理器、控制器服务等
- 提供内容加密、通过安全协议进行通信
- 实现快速开发和有效测试
- 允许开发简单的单功能组件,这些组件可以重复使用和组合以形成更复杂的流程
- 允许类加载器隔离,以便更轻松地管理依赖项
如何安装 Apache NiFi
以下是 Apache NiFi 安装的分步过程
步骤1) 在MyCAD中点击 软件更新 链接,
并点击“继续订阅”
步骤2) 在下一页上,
点击“接受条款”
步骤3) 你会看到这个页面,
感谢您订阅该产品!我们正在处理您的请求。
步骤4) 5分钟后刷新页面。
点击“继续配置”
步骤5) 在下一页上,
保持默认设置并点击“继续启动”
步骤6) 在下一页上,
点击启动。您可能需要创建一个密钥
步骤7) 您将会看到此成功消息。
恭喜!此软件的一个实例已成功部署在 EC2 上!
步骤8) 注意,
EC2 实例的实例 ID 和公共 DNS
步骤9) 在安全组中,
将所有流量规则添加到入站和出站
步骤10) 要访问 Nifi,
只需使用 URL
http://publicdns:8080/nifi
在我们的例子中它变成
http://ec2-100-26-156-57.compute-1.amazonaws.com:8080/nifi/
用户: 行政
密码: 实例 ID
步骤11) 你会看见,
NiFi 主屏幕
Nifi 用例
以下是 Apache NiFi 用例列表:
产业应用 | 用法 |
---|---|
保险 |
|
卫生保健 |
|
电信 |
|
制造业 |
|
石油和天然气工业 |
|
金融服务 |
|
运行 Apache NiFi 的最佳实践
- 非常适合在 NiFi 中分离测试/开发/生产环境
- 您应该将流程分解为流程组
- 使用命名约定、使用注释和标签
- 将你的项目分为三个部分:采集、测试和监控
- 对变量使用唯一的名称
Nifi 的缺点
- 需要精确的安全性和合规性控制
- 使用 Apache NiFi 时,你需要非常了解底层系统
- 必须维护数据的保管链
- 交通/信息传递可能还不够
- 数据访问需求超出了可用的传输资源
- 并非所有数据都是平等的
- SSL 和主题级授权可能不够
结语
- Apache NiFi 是一款开源软件,用于自动化和管理系统之间的数据流
- NiFi 旨在以集群形式横向扩展,从而保证数据传输
- Nifi 在 NSA 开发了八年多
- 一旦从外部源获取数据,它就会在 Apache NiFi 架构内表示为 FlowFile。
- FlowFile、处理器、控制器、Web服务器、连接、背压、存储库是NiFi架构的重要组成部分
- NiFi 表达语言支持任何运行 Java
- 您可以轻松地在 AWS 上安装 NiFi
- NiFi 广泛应用于医疗保健、保险、电信、制造、金融、石油和天然气等多个行业。
- 作为最佳实践,请将项目分为三个部分:采集、测试和监控