logo资料库

apache nifi使用指南.docx

第1页 / 共87页
第2页 / 共87页
第3页 / 共87页
第4页 / 共87页
第5页 / 共87页
第6页 / 共87页
第7页 / 共87页
第8页 / 共87页
资料共87页,剩余部分请下载后查看
1.Apache Nifi 概念
1.1.NiFi简介
1.2.Nifi核心概念
1.3.NIFI架构
2.NiFi的搭建
2.1.单机开发环境搭建
2.1.1 设置选项卡
2.1.2调度选项卡
2.1.3 属性选项卡
2.1.4 Processor连接
(1) FlowFlie Expiration
(2) Back Pressure
(3) 优先级
2.1.5处理器验证
2.1.6 Processor启动
2.2.集群环境搭建
2.1.1核心模块NiFi Cluster Coordinator(集群协调器):集群中节点,负责
2.2.2搭建集群 
2.2.3配置myid
2.2.4配置state-management.xml
2.2.5配置nifi节点属性
2.2.6测试集群
3.典型技术场景
3.1.GetFile To PutFile
3.2.CSV To MySQL
3.3.MySQL To Oracle
3.4.执行javaScript脚本
(1)从会话中获取传入的流文件
(2)从会话中获取多个传入的流文件
(3)从父级FlowFile创建一个新的FlowFile
(4)将多个属性添加到流文件
(5)将多个属性添加到流文件
(6)从流文件中获取属性
(7)从流文件中获取所有属性
(8)将流文件转移到关系
(9)以指定的日志记录级别向日志发送消息
3.5.Hive To Elasticsearch
3.6.Elasticsearch To MySQL
3.7.HBase To Kafka
3.8.Hive To Kafka
3.9.NiFi日志监控
4.组件扩展开发
4.1.开始
4.2.项目依赖
4.3.Json Processor
4.4.打包部署
4.5.单元测试
(1)
(2)导NiFi包
(3)添加Test标签
(4)模拟场景
(5)赋值
5. Nifi RestAPI
5.1. 处理器
5.2. 控制器
5.3. 控制器服务
5.4. 流程组
5.5. 模板
5.6. 报告任务
5.7. 连接
5.8. FlowFile 队列
6.集群压力测试
6.1.压力测试场景
6.2.压力测试结果
6.3.性能调优
Apache nifi 开发指南 版本:V 1.6 日期:2018 年 6 月 13 日 0
1. Apache Nifi 概念 1.1. NiFi简介 Apache NiFi 是一个易于使用、功能强大而且可靠的数据拉取、数据处理和分发系统, 用于自动化管理系统间的数据流。它支持高度可配置的指示图的数据路由、转换和系统中介 逻辑,支持从多种数据源动态拉取数据。NiFi 原来是 NSA 的一个项目,目前已经代码开源, 是 Apache 基金会的顶级项目之一。 NiFi 是基于 Java 的,使用 Maven 支持包的构建管理。 NiFi 基于 Web 方式工作,后台 在服务器上进行调度。用户可以为数据处理定义为一个流程,然后进行处理,后台具有数据 处理引擎、任务调度等组件。 1.2. Nifi核心概念 FlowFile:表示通过系统移动的每个对象,包含数据流的基本属性 FlowFile Processor(处理器):负责实际对数据流执行工作 Connection(连接线):负责不同处理器之间的连接,是数据的有界 缓冲区 Flow Controller(流量控制器):管理进程使用的线程及其分配 Process Group(过程组):进程组是一组特定的进程及其连接,允许 组合其他组件创建新组件 1.3. NIFI架构 NiFi 是基于 Java 的,NiFi 的核心部件在 JVM 里的位置如下图所示: 1
NiFi 在主机操作系统上的 JVM 内执行。JVM 上的 NiFi 的主要组件如下: 3.1 网络服务器 Web 服务器的目的是托管 NiFi 的基于 HTTP 的命令和控制 API。 3.2 流控制器 流控制器是操作的大脑。它提供用于扩展程序运行的线程,并管理扩展程序接收资源以执 行的时间表。 3.3 扩展 有各种类型的 NiFi 扩展在其他文档中描述。这里的关键是扩展在 JVM 中运行和执行。 3.4 FlowFile 存储库 FlowFile 存储库是 NiFi 跟踪目前在流程中活动的给定 FlowFile 的知识状态。存储库 实现是可插拔的。默认方法是位于指定磁盘分区上的持久写入前端日志。 3.5 内容存储库 Content Repository 是给定 FlowFile 的实际内容字节。存储库的实现是可插拔的。默认 方法是一个相当简单的机制,它将数据块存储在文件系统中。可以指定多个文件系统存储 位置,以便获得不同的物理分区,以减少任何单个卷上的争用。 3.6 源头存储库 2
Provenance Repository 是存储所有来源的事件数据的地方。存储库构造是可插入的,默 认实现是使用一个或多个物理磁盘卷。在每个位置内,事件数据被索引和可搜索。 3.7 作为功能强大的数据处理和分发组件,NiFi 自然原生支持集群部署方式(推荐部署方 式)。NiFi 集群部署模式如下图: 集群模式下,NiFi 集群中的每个节点对数据执行相同的任务,但是每个节点都在不同的 数据集上进行操作。和大部分大数据组件一样,NiFi 集群使用 Apache ZooKeeper 提供协 调服务。 Apache ZooKeeper 选择一个 NiFi 节点作为集群协调器,故障转移由 ZooKeeper 自动处理。 所有集群节点向集群协调器报告心跳和状态信息。集群协调器负责节点的断 开和连接。此外,ZooKeeper 会为每个集群选举一个节点作为集群主节点。作为 DataFlow 管理器,您可以通过任何节点的用户界面(UI)与 NiFi 集群进行交互。您所做的任何更 改都会同步到集群中的所有节点,从而允许多个入口点。 2. NiFi 的搭建 2.1. 单机开发环境搭建 1 运行环境准备。 Apache nifi 即可运行在 Windows 平台,也可运行在 Linux 平台,需要安装 jdk(nifi 1.x 以上需要 jdk8 以上,0.x 需 jdk7 以上)和 maven(至少 3.1.0 以上版本)。 2 下载 3
NIFI 下载地址:http://nifi.apache.org/download.html 下载当前版本的 NiFi 二进制工程,目前最新的版本为 1.6.0。 3.下载之后无需安装直接解压即可。 4 支持浏览器: · Internet Explorer 9+ (see note below) · Mozilla FireFox 24+ · Google Chrome 36+ · Safari 8 5 修改配置文件。 由于 NIFI 默认端口为 8080,所以需要检查一下 8080 端口是否被占用,如果被占用可以使 用别的未被占用的端口,如 9090,9091 等。 检查端口是否被占用命令:netstat -ano|findstr "8080" NIFI 配置文件:nifi-1.6.0/conf/nifi.properties,配置 ip(134 行 nifi.web.http.host) 和端口(135 行:nifi.web.http.port) 6 启动服务。 4
在 linux 平台,启动服务使用命令({NIFI ROOT})/bin/nifi.sh start; 在 window 平台使用命令{NIFI ROOT})\bin\run-nifi.bat。 (双击启动文件:({NIFI ROOT})\bin\run-nifi.bat) 7 验证测试 启 动 服 务 后 过 大 概 3 到 5 分 钟 , 在 浏 览 器 中 输 入 : http://localhost/nifi 或 者 : http://localhost:8080/nifi,即可开始使用了。 8 基本命令 启动:./nifi.sh start 关闭:./nifi.sh stop 重启:./nifi.sh restart 状态:./nifi.sh status 报表:./nifi-app.log 9、NiFi 的操作 (1)UI 界面介绍 · 工具栏 这里主要是构造数据流操作的主要面板。 5
添加模块(processor) nifi 内部会提供各个处理模块,当我们在进行数据处理的过程中,可以选择不同的模块并 调整变量进行拼装,从而组合成一个完整的数据流处理的组。 添加数据流传入点(input-port) 虽说是数据流输入点,但是并不是整体数据流的起点。它是作为组与组之间的数据 流连接的传入点与输出点。 添加数据流输出点(output-port) 同理上面的输入点。它是作为组与组之间的数据流连接的传入点与输出点。 添加组(process-group) 组相当于系统中的文件夹,作用就是使数据流的各个部分看起来更工整,思路更清 晰,不至于从头到尾一条线阅读起来十分不方便。 添加远端的组(remote process-group) 根据弹出框进行信息配置,可加入远程的组。 拉取已有的文件(template) 每当做好一个完整的数据流后,可存储到本地为 xml 文件,nifi 支持本地的 templ ate 上传,这个按钮就是在上传本地 template 之后,选择上传过的一个获取到操作 画布上。 添加便签(label) 相当于便签,可放置在画布空白处,写上备注信息。 · Navigate 这一部分是对区域一这个画布的缩小预览,点击放大缩小可调整视野,蓝框区域就是画布当 前的界面,可用鼠标在这部分进行移动从而调整画布的视野。 · 操作栏 开始运行 选中模块并点击运行按钮,开始进行对数据流的处理。 6
停止运行 选中模块并点击停止按钮,则停止了进行对数据流的处理。 保存 template 选择你要保存的一个 template,点击这个保存按钮,可把这个 template 保存到 nifi 系统里(并不是电脑本地,如果想保存到电脑本地,可点击右上角 这个按 钮,选择 Template,弹出的页面上有下载选项)。 上传 template 可上传本地的 template(xml 文件)到 nifi 系统里。 (2)Processor 添加处理器: 点击 add 7
分享到:
收藏