FlowFile: 用户处理和分发的每条数据可以成为FlowFile。FlowFile由两部分组成:Attributes和Content。Content是用户数据本身,Attributes是与用户数据关联的键值对。
Processor: Processor是Nifi的处理器,负责创建、发送、接收、转换、路由、合并和处理FlowFiles。
Nifi可以允许在Windows和Linux平台上。因为Nifi是使用的Java语言,需要jdk环境,Nifi 1.*需要jdk8以上,Nifi 0.*需要jdk7以上。
部署到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}
# 启动
[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访问


第一个是Processor,实现各种功能的处理器在这里查找。稍后会做专门的介绍。
第二个是input port,作为数据流传入点,它并不是整体数据流的起点,而是组与组之间数据流连接的传入点。
第三个是output port,作为数据流输出点,它并不是整体数据流的终点,而是组与组之间数据流连接的传出点。
第四个是process group,相当于系统中的文件夹,可以在组中嵌套组,合理的规划,可以使得整体页面简洁、可读性高。
第五个是remote process group,添加远程的组。
第六个是funnel,从其中文意思就可以猜出,它具有将多个Connections合并到一个的功能。
第七个是template,通过创建模板,可以在这里使用历史创建的模板,便捷的处理相同场景的问题。
第八个是label,作为便签,可以在画布上添加你的备注信息。
辅助查看任务,蓝框可移动。

通过选择组件或组,单机右键也可以使用这些操作。

第一个是属性配置,可配置组件和组。
第二个是启用,只能操作组件。
第三个是禁用,只能操作组件。
第四个是启动,可操作组件和组。
第五个是停止,可操作组件和组。
第六个是创建模板,可操作组件和组。
第七个是上传模板,上传已保存的模板。
第九个是复制,可操作组件和组。
第十个是添加组,将组添加到新组,只能操作组。
第十一个是改变颜色,只能操作组件。
第十二个是删除,可操作组件和组。
状态栏记录Nifi当前健康状况的重要统计数据,活动线程的数量、Nifi当前的工作状态、排队统计数据、FlowFiles大小。如果Nifi是集群模式,会显示当前集群的数量。
当在Nifi中设计了复杂的数据处理流时,可以发现某些相似场景可以使用同一种流程处理。这种情况下,Nifi提供了模板这个概念,使得数据流具有可重用性。
创建模板的流程:1.通过shift可选择多个组件,注意:需要将组件之间的连接关系也选中,点击操作区的创建模板或者单机右键创建模板。2.输入便于识别的模板名称和介绍。3.创建即可。
模板的使用流程: 模板创建好后,通过拖动导航栏的template,可以选择历史创建的模板,ADD即可。
下载
1.点击菜单的Templates,可以查看所有Templates以及注释。

2.下载需要的模板到本地,下载为xml文件,也可以将xml文件提供给他人使用。

上传
在操作区选择上传模板,通过搜索本地模板的xml文件,UPLOAD即可,后续就跟正常的使用模板一样的操作。
注意事项
1.在使用模板时,敏感属性不会被添加到模板中,每次使用模板要重新配置。2.如果模板中的组件引用了Controller Service,则Controller Service也将添加到模板中。这以为则每次使用模板,都会创建Controller Service的副本。