Apache NiFi 是为数据流而生的。它支持数据路由、转换和系统中介逻辑的高度可配置的有向图。它的一些主要功能包括:
[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
运行mvn clean install
或并行构建执行mvn -T 2.0C clean install
。
在现代硬件上,并行构建应该需要大约 15 分钟。
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
Runningbin/nifi.sh start
在后台启动 NiFi 并退出。与可选的超时(以秒为单位)一起使用--wait-for-init
以在退出前等待完全启动。
laptop:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start --wait-for-init 120
默认配置在启动时生成随机用户名和密码。NiFi 将生成的凭据写入位于logs/nifi-app.log
NiFi 安装目录下的应用程序日志中。
以下命令可用于在已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>
在网络浏览器中打开以下链接以访问 NiFi:https://localhost:8443/nifi
Web 浏览器将显示一条警告消息,指示由于初始化期间生成的自签名证书 NiFi 存在潜在的安全风险。接受潜在的安全风险并继续加载界面是初始开发安装的一个选项。生产部署应提供来自可信证书颁发机构的证书并更新 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”。在目标目录中,应该有一个 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- version -bin”的目录中已经解压的构建,其中version是当前项目版本。要在另一个位置部署,请使用 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
查看位于日志文件夹中的日志 $ tail -F ~/example-minifi-deploy/logs/minifi-app.log
如需帮助构建您的第一个数据流并将数据发送到 NiFi 实例,请参阅位于 docs 文件夹中的系统管理指南或使用 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 实例共享资源的存储和管理。
或者
仅构建注册表子项目:
cd nifi/nifi-registry
mvn clean install
如果您希望启用样式和许可证检查,请指定 contrib-check 配置文件:
mvn clean install -Pcontrib-check
启动注册表
cd nifi-registry/nifi-registry-assembly/target/nifi-registry--bin/nifi-registry-/ ./bin/nifi-registry.sh 开始
请注意,应用程序 Web 服务器可能需要一段时间才能加载,然后才能访问。
使用默认设置,应用程序 UI 将在http://localhost:18080/nifi-registry可用
如果您希望针对应用程序 REST API 进行测试,您可以直接访问 REST API。使用默认设置,REST API 的基本 URL 将位于http://localhost:18080/nifi-registry-api
. 用于测试 REST API 的 UI 将在http://localhost:18080/nifi-registry-api/swagger/ui.html提供
日志将在logs/nifi-registry-app.log
为了确保 NiFi Registry 针对不同的关系数据库正确工作,可以利用Testcontainers 框架针对不同的数据库运行现有的集成测试。
Spring 配置文件用于控制将对 Spring 应用程序上下文可用的 DataSource 工厂。提供的 DataSource 工厂使用 Testcontainers 框架为给定数据库启动 Docker 容器并创建相应的 DataSource。如果未指定配置文件,则默认情况下将使用 H2 数据源,并且不需要 Docker 容器。
假设 Docker 在运行构建的系统上运行,那么可以运行以下命令:
有关可用 DataSource 工厂的完整列表,请参阅nifi-registry-test
模块。
[/hidecontent]