1.NiFi简介
Apache Nifi是一个易用、强大、可靠的数据处理和分发系统。
主要功能:数据流程管理,设计数据流程、执行数据流程、监控数据流程执行。
一个数据流程是一个有向图包含:数据源节点、数据转化和协调节点、以及数据输出节点。
在NiFi中数据流程图中的节点被称为Processor,流程图中的边称为connection,边是有方向的,在流程图中流动的数据称为FlowFile。FlowFile被数据源类型的Processor创建,沿着connection流动,被数据转化类型的Processor被转化(拆开、合并、转化为新的FlowFile、被复制或者被遗弃),被协调类型Processor调整流向,最后被Sink类型的Processor发送到外部节点。
NiFi在复杂的多系统企业环境中能够发挥非常大的作用。
2. 环境要求
Apache NiFi比较不挑操作系统,只要能安装JDK,能执行java命令就行。oracle jdk和open jdk都可,版本要求为8或11。安装好jdk执行javac看看装好没有。
laofeng@192 ~ % javac --version
javac 11.0.9
如果部署Apache NiFi伪基群则需要预先安装Docker Desktop。
3.单点
Apache NiFi 安装也比较简单,只要下载一个二进制包,解压了就可以执行。二进制包有两种:tag.gz、zip,建议Mac、linux用户下载tar.gz,windows用户下载zip包。Apache NiFi下载地址:http://nifi.apache.org/download.html。如果下载速度没有达到数MB/秒,建议换一个速度快的镜像地址,毕竟安装包的size有1.5G。
解压后的目录结构如下:
启动nifi
在linux和mac下使用bin/nifi.sh启动,windows下使用bin/nifi.bat。
# 先执行一下试试,输出的是usage,可以看到启动、停止、执行、重启、状态、dump、诊断、安装(为系统服务)、无状态(?什么意思)
laofeng@192 nifi-1.12.1 % bin/nifi.sh
Usage nifi {start|stop|run|restart|status|dump|diagnostics|install|stateless}
# 执行启动命令,删除了“java home”和“nifi home”,启动配置文件为“conf/bootstrap.conf”
laofeng@192 nifi-1.12.1 % bin/nifi.sh start
Java home: /Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
NiFi home: /Users/laofeng/Downloads/apps/nifi-1.12.1
Bootstrap Config File: /Users/laofeng/Downloads/apps/nifi-1.12.1/conf/bootstrap.conf
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.nifi.bootstrap.util.OSUtils (file:/Users/laofeng/Downloads/apps/nifi-1.12.1/lib/bootstrap/nifi-bootstrap-1.12.1.jar) to method java.lang.ProcessImpl.pid()
WARNING: Please consider reporting this to the maintainers of org.apache.nifi.bootstrap.util.OSUtils
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
# 查看一下状态,输出了监听端口号和进程id “listening to Bootstrap on port 65173, PID=16224”
laofeng@192 nifi-1.12.1 % bin/nifi.sh status
Java home: /Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home
NiFi home: /Users/laofeng/Downloads/apps/nifi-1.12.1
Bootstrap Config File: /Users/laofeng/Downloads/apps/nifi-1.12.1/conf/bootstrap.conf
2020-11-15 20:40:05,575 INFO [main] org.apache.nifi.bootstrap.Command Apache NiFi is currently running, listening to Bootstrap on port 65173, PID=16224
# 使用jps命令,发现了“NIFI”和“RunNiFi