开源
Apache NiFi:用于处理数据和分发数据的数据流
来源:元经纪     阅读:1266
网站管理员
发布于 2023-03-16 05:43
查看主页

概述

Apache NiFi是一个易于使用、功能强大且可靠的系统,用于处理和分发数据。

特点

Apache NiFi 是为数据流而生的。它支持数据路由、转换和系统中介逻辑的高度可配置的有向图。它的一些主要功能包括:

最低建议

最低要求

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

  • JDK 11.0.16
  • Apache Maven  3.8.6

构建

运行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.logNiFi 安装目录下的应用程序日志中。

以下命令可用于在已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子项目

MiNiFi 是 Apache NiFi 的一个子项目。它是一种补充数据收集方法,补充了NiFi在数据流管理中的核心原则,侧重于在其创建源收集数据。

MiNiFi 的具体目标包括:

  • 体积小、重量轻
  • 代理商集中管理
  • 数据来源的生成
  • 与 NiFi 集成以进行后续数据流管理和完整的信息保管链

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
    

Docker构建

建造:

  • 运行完整的 NiFi 构建(有关说明,请参见上文)。然后从 minifi/ 子目录,执行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 实例共享资源的存储和管理。

开始注册

  1. 构建 NiFi(参见NiFi 入门

或者

仅构建注册表子项目:

cd nifi/nifi-registry
mvn clean install

如果您希望启用样式和许可证检查,请指定 contrib-check 配置文件:

mvn clean install -Pcontrib-check
  1. 启动注册表

    cd nifi-registry/nifi-registry-assembly/target/nifi-registry--bin/nifi-registry-/ ./bin/nifi-registry.sh 开始

请注意,应用程序 Web 服务器可能需要一段时间才能加载,然后才能访问。

  1. 访问应用程序 Web UI

使用默认设置,应用程序 UI 将在http://localhost:18080/nifi-registry可用

  1. 访问应用程序 REST API

如果您希望针对应用程序 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提供

  1. 访问应用程序日志

日志将在logs/nifi-registry-app.log

数据库测试

为了确保 NiFi Registry 针对不同的关系数据库正确工作,可以利用Testcontainers 框架针对不同的数据库运行现有的集成测试。

Spring 配置文件用于控制将对 Spring 应用程序上下文可用的 DataSource 工厂。提供的 DataSource 工厂使用 Testcontainers 框架为给定数据库启动 Docker 容器并创建相应的 DataSource。如果未指定配置文件,则默认情况下将使用 H2 数据源,并且不需要 Docker 容器。

假设 Docker 在运行构建的系统上运行,那么可以运行以下命令:

有关可用 DataSource 工厂的完整列表,请参阅nifi-registry-test模块。

[/hidecontent]

 
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
联通好服务 用心为客户 服务的典范、客户信赖的伙伴——记中国联通智慧客服北方二中心服务标兵李孝晓
货拉拉CTO张浩:货运无忧大模型已在多场景应用
关于当前涉人工智能几个法律问题的思考
卢伟冰:今年春节大不一样 小米手机、汽车、家电销售非常火爆
SpaceX星舰第七次试飞 超重型火箭成功回收:再次实现筷子夹火箭!

首页

分类

定制方案

消息

我的