Nifi 部署与入门
1 常用术语
FlowFile: 用户处理和分发的每条数据可以成为FlowFile。FlowFile由两部分组成:Attributes和Content。Content是用户数据本身,Attributes是与用户数据关联的键值对。
Processor: Processor是Nifi的处理器,负责创建、发送、接收、转换、路由、合并和处理FlowFiles。
2 运行环境准备
Nifi可以允许在Windows和Linux平台上。因为Nifi是使用的Java语言,需要jdk环境,Nifi 1.*
需要jdk8以上,Nifi 0.*
需要jdk7以上。
3 Nifi部署
部署到Linux系统中,选择较为稳定的1.9.2版本,官网下载nifi-1.9.2-bin.tar.gz
从这个安装包的大小可以看出,Nifi已经比较完备了,解压后不需要做太多操作,部署单机模式情况下,只需要确定端口不冲突即可。
# 1.将压缩包上传到software目录下,解压
[root@zxy_slave1 software]# tar -zxvf nifi-1.9.2-bin.tar.gz -C /zxy/apps/
# 2.添加环境变量
[root@zxy_slave1 bin]# vim /etc/profile
export JAVA_HOME=/zxy/apps/jdk1.8.0_311
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export NIFI_HOME=/zxy/apps/nifi-1.9.2
export PATH=$PATH:${NIFI_HOME}/bin
# 3.刷新环境变量
[root@zxy_slave1 bin]# source /etc/profile
# 4.修改配置文件
root@zxy_slave1 conf]# vim nifi.properties
# nifi端口配置,只需要修改nifi.web.http.port即可
# web properties #
nifi.web.war.directory=./lib
nifi.web.http.host=
nifi.web.http.port=58080
nifi.web.http.network.interface.default=
nifi.web.https.host=
nifi.web.https.port=
nifi.web.https.network.interface.default=
nifi.web.jetty.working.directory=./work/jetty
nifi.web.jetty.threads=200
nifi.web.max.header.size=16 KB
nifi.web.proxy.context.path=
nifi.web.proxy.host=
# 5.查看启动命令
[root@zxy_slave1 bin]# ./nifi.sh --help
Usage nifi {start|stop|run|restart|status|dump|install}
4 Nifi启动
# 启动
[root@zxy_slave1 bin]# ./nifi.sh start
Java home: /zxy/apps/jdk1.8.0_311
NiFi home: /zxy/apps/nifi-1.9.2
Bootstrap Config File: /zxy/apps/nifi-1.9.2/conf/bootstrap.conf
# jps查看进程是否启动
[root@zxy_slave1 bin]# jps
27440 RunNiFi
27466 NiFi
27547 Jps
# netstat查看端口
[root@zxy_slave1 bin]# netstat -nltp
# 日志文件都在logs目录下
[root@zxy_slave1 logs]# pwd
/zxy/apps/nifi-1.9.2/logs
# 启动成功后,通过ip:port/nifi访问
5 面板功能介绍
5.1 常用功能模块
第一个是Processor,实现各种功能的处理器在这里查找。稍后会做专门的介绍。
第二个是input port,作为数据流传入点,它并不是整体数据流的起点,而是组与组之间数据流连接的传入点。
第三个是output port,作为数据流输出点,它并不是整体数据流的终点,而是组与组之间数据流连接的传出点。
第四个是process group,相当于系统中的文件夹,可以在组中嵌套组,合理的规划,可以使得整体页面简洁、可读性高。
第五个是remote process group,添加远程的组。
第六个是funnel,从其中文意思就可以猜出,它具有将多个Connections合并到一个的功能。
第七个是template,通过创建模板,可以在这里使用历史创建的模板,便捷的处理相同场景的问题。
第八个是label,作为便签,可以在画布上添加你的备注信息。
5.2 导航栏(Navigate)
辅助查看任务,蓝框可移动。
5.3 操作区(Operate)
通过选择组件或组,单机右键也可以使用这些操作。
第一个是属性配置,可配置组件和组。
第二个是启用,只能操作组件。
第三个是禁用,只能操作组件。
第四个是启动,可操作组件和组。
第五个是停止,可操作组件和组。
第六个是创建模板,可操作组件和组。
第七个是上传模板,上传已保存的模板。
第九个是复制,可操作组件和组。
第十个是添加组,将组添加到新组,只能操作组。
第十一个是改变颜色,只能操作组件。
第十二个是删除,可操作组件和组。
5.4 状态栏
状态栏记录Nifi当前健康状况的重要统计数据,活动线程的数量、Nifi当前的工作状态、排队统计数据、FlowFiles大小。如果Nifi是集群模式,会显示当前集群的数量。
6 使用模板
当在Nifi中设计了复杂的数据处理流时,可以发现某些相似场景可以使用同一种流程处理。这种情况下,Nifi提供了模板这个概念,使得数据流具有可重用性。
6.1 模板创建与使用
创建模板的流程:1.通过shift可选择多个组件,注意:需要将组件之间的连接关系也选中
,点击操作区的创建模板
或者单机右键创建模板。2.输入便于识别的模板名称和介绍。3.创建即可。
模板的使用流程: 模板创建好后,通过拖动导航栏的template,可以选择历史创建的模板,ADD即可。
6.2 模板下载与上传
下载
1.点击菜单的Templates,可以查看所有Templates以及注释。
2.下载需要的模板到本地,下载为xml文件,也可以将xml文件提供给他人使用。
上传
在操作区选择上传模板,通过搜索本地模板的xml文件,UPLOAD即可,后续就跟正常的使用模板一样的操作。
注意事项
1.在使用模板时,敏感属性不会被添加到模板中,每次使用模板要重新配置。2.如果模板中的组件引用了Controller Service,则Controller Service也将添加到模板中。这以为则每次使用模板,都会创建Controller Service的副本。