[][nifi]
Apache NiFi 是一个易于使用、功能强大且可靠的数据处理和分发系统。
Apache NiFi 专为数据流而设计。它支持高度可配置的有向图,用于数据路由、转换和系统中介逻辑。其一些关键特性包括:
阅读开发快速入门指南。 该指南包含获取本地源代码副本的信息,介绍问题跟踪的方法,并提供一些关于开发环境常见问题的警告。
如需更全面的开发指南以及关于为项目做贡献的信息,请阅读 NiFi 开发者指南。
运行 mvn clean install 或为了并行构建执行 mvn -T 2.0C clean install。
在现代硬件上,并行构建应需要大约十五分钟。
laptop:nifi myuser$ mvn -T 2.0C clean install
[INFO] Scanning for projects...
[INFO] Inspecting build with total of 115 modules...
...tens of thousands of lines elided...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 09:24 min (Wall Clock)
[INFO] Finished at: 2015-04-30T00:30:36-05:00
[INFO] Final Memory: 173M/1359M
[INFO] ------------------------------------------------------------------------
运行 mvn clean install -DskipTests 以跳过单元测试执行。
切换到 nifi-assembly 目录。target 目录包含二进制归档文件。
laptop:nifi myuser$ cd nifi-assembly
laptop:nifi-assembly myuser$ ls -lhd target/nifi*
drwxr-xr-x 3 myuser mygroup 102B Apr 30 00:29 target/nifi-1.0.0-SNAPSHOT-bin
-rw-r--r-- 1 myuser mygroup 144M Apr 30 00:30 target/nifi-1.0.0-SNAPSHOT-bin.tar.gz
-rw-r--r-- 1 myuser mygroup 144M Apr 30 00:30 target/nifi-1.0.0-SNAPSHOT-bin.zip
将 nifi-VERSION-bin.tar.gz 或 nifi-VERSION-bin.zip 复制到单独的部署目录。
解压分发版将创建一个以版本号命名的新目录。
laptop:nifi-assembly myuser$ mkdir ~/example-nifi-deploy
laptop:nifi-assembly myuser$ tar xzf target/nifi-*-bin.tar.gz -C ~/example-nifi-deploy
laptop:nifi-assembly myuser$ ls -lh ~/example-nifi-deploy/
total 0
drwxr-xr-x 10 myuser mygroup 340B Apr 30 01:06 nifi-1.0.0-SNAPSHOT
切换到部署位置并运行以下命令以启动 NiFi。
laptop:~ myuser$ cd ~/example-nifi-deploy/nifi-*
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start
运行 bin/nifi.sh start 会在后台启动 NiFi 并退出。使用 --wait-for-init 并带上可选的超时时间(秒),可等待完全启动后再退出。
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start --wait-for-init 120
默认配置会在启动时生成随机用户名和密码。NiFi 将生成的凭据写入位于 NiFi 安装目录下 logs/nifi-app.log 的应用日志中。
在安装了 grep 的操作系统上,可以使用以下命令查找生成的凭据:
laptop:nifi-1.0.0-SNAPSHOT myuser$ grep Generated logs/nifi-app*log
NiFi 记录生成的凭据如下:
Generated Username [USERNAME]
Generated Password [PASSWORD]
USERNAME 是一个由 36 个字符组成的随机 UUID。PASSWORD 是一个由 32 个字符组成的随机字符串。生成的凭据将存储在 conf/login-identity-providers.xml 中,密码使用 bcrypt 哈希存储。请将这些凭据记录在安全的位置,以便访问 NiFi。
可以使用以下命令将随机用户名和密码替换为自定义凭据:
./bin/nifi.sh set-single-user-credentials <username> <password>
在 Web 浏览器中打开以下链接以访问 NiFi:https://localhost:8443/nifi
由于 NiFi 在初始化期间生成了自签名证书,Web 浏览器会显示警告消息,提示潜在的安全风险。对于初始开发安装,可以选择接受潜在安全风险并继续加载界面。生产部署应从受信任的证书颁发机构获取证书,并更新 NiFi 的密钥库和信任库配置。
接受自签名证书后访问 NiFi 将显示登录界面。

使用生成的凭据,在 User 字段中输入生成的用户名,在 Password 字段中输入生成的密码,然后选择 LOG IN 登录系统。

NiFi 用户指南 描述了如何构建数据流。
运行以下命令以停止 NiFi:
laptop:~ myuser$ cd ~/example-nifi-deploy/nifi-*
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh stop
MiNiFi 是 Apache NiFi 的子项目。它是一种补充性的数据采集方法,补充了 NiFi 在数据流管理方面的核心理念,专注于在数据创建源头进行数据采集。
MiNiFi 的具体目标包括:
对 MiNiFi 角色的理解应从代理的角度出发,该代理直接或紧邻源传感器、系统或服务器运行。
运行方法:
切换到 'minifi-assembly' 目录。在 target 目录中,应该有一个 minifi 的构建产物。
$ cd minifi-assembly
$ ls -lhd target/minifi*
drwxr-xr-x 3 user staff 102B Jul 6 13:07 minifi-1.14.0-SNAPSHOT-bin
-rw-r--r-- 1 user staff 39M Jul 6 13:07 minifi-1.14.0-SNAPSHOT-bin.tar.gz
-rw-r--r-- 1 user staff 39M Jul 6 13:07 minifi-1.14.0-SNAPSHOT-bin.zip
对于持续开发的测试,你可以直接使用当前目录中已解压的构建产物,目录名为 "minifi-版本-bin",其中 版本 是当前项目版本。要部署到其他位置,可以使用 tarball 或 zipfile,并将其解压到你喜欢的任何位置。分发版将位于一个以版本号命名的公共父目录中。
$ mkdir ~/example-minifi-deploy
$ tar xzf target/minifi-*-bin.tar.gz -C ~/example-minifi-deploy
$ ls -lh ~/example-minifi-deploy/
total 0
drwxr-xr-x 10 user staff 340B Jul 6 01:06 minifi-1.14.0-SNAPSHOT
运行 MiNiFi:
切换到 MiNiFi 的安装位置并运行。
$ cd ~/example-minifi-deploy/minifi-*
$ ./bin/minifi.sh start
查看位于 logs 文件夹中的日志 $ tail -F ~/example-minifi-deploy/logs/minifi-app.log
如需帮助构建你的第一个数据流并将数据发送到 NiFi 实例,请参阅 docs 文件夹中的 System Admin Guide,或使用 minifi-toolkit,该工具帮助将 NiFi 模板适配为 MiNiFi YAML 配置文件格式。
如果你正在测试持续开发,可能需要停止实例。
$ cd ~/example-minifi-deploy/minifi-*
$ ./bin/minifi.sh stop
构建方法:
mvn -P docker clean install。这将运行完整构建,基于该构建创建 Docker 镜像,并运行 docker-compose 集成测试。成功完成后,你将获得一个名为 apacheminifi:${minifi.version} 的镜像,可以使用以下命令启动(将 ${minifi.version} 替换为你分支当前的 Maven 版本):docker run -d -v YOUR_CONFIG.YML:/opt/minifi/minifi-${minifi.version}/conf/config.yml apacheminifi:${minifi.version}
Registry——Apache NiFi 的子项目——是一个补充性应用程序,提供了一个中心位置,用于存储和管理跨一个或多个 NiFi 和/或 MiNiFi 实例的共享资源。
或
仅构建 Registry 子项目:
cd nifi/nifi-registry
mvn clean install
如果希望启用风格和许可证检查,请指定 contrib-check 配置文件:
mvn clean install -Pcontrib-check
2) 启动 Registry