栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

nifi源码阅读前提

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

nifi源码阅读前提

阿帕奇NiFi
ciworkflow systemtests Docker 拉取版本 Slack

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

目录
特征
要求
入门
MiNiFi 子项目
注册表子项目
获得帮助
文档
执照
出口管制
特征
Apache NiFi 是为数据流而设计的。它支持高度可配置的数据路由、转换和系统中介逻辑的有向图。它的一些主要功能包括:

基于 Web 的用户界面
设计、控制和监控的无缝体验
多租户用户体验
高度可配置
容错与保证交付
低延迟与高吞吐量
动态优先级
可以在运行时修改流
背压
扩展以利用完整的机器功能
使用零领导者聚类模型向外扩展
数据来源
从头到尾跟踪数据流
为扩展而设计
构建您自己的处理器等
实现快速开发和有效测试
安全的
SSL、SSH、HTTPS、加密内容等…
可插入的细粒度基于角色的身份验证/授权
多个团队可以管理和共享流程的特定部分
最低要求
JDK 8
Apache Maven 3.6.0
入门
通读开发快速入门指南。它将包括有关获取源的本地副本的信息,提供有关问题跟踪的指示,并提供有关开发环境常见问题的一些警告。

有关更全面的开发指南和有关为项目做出贡献的信息,请阅读 NiFi 开发人员指南。

建筑
运行 mvn clean install 或对于并行构建执行 mvn -T 2.0C clean install。

在现代硬件上,并行构建大约需要 15 分钟。

笔记本电脑:nifi myuser$ mvn -T 2.0C 全新安装
[信息] 正在扫描项目…
[信息] 正在检查总共 115 个模块的构建…
…省略了数万行…
[信息] ----------------------------------------------- -------------------------
[信息] 构建成功
[信息] ----------------------------------------------- -------------------------
[信息] 总时间:09:24 分钟(挂钟)
[信息] 完成时间:2015-04-30T00:30:36-05:00
[INFO] 最终内存:173M/1359M
[信息] ----------------------------------------------- -------------------------
运行 mvn clean install -DskipTests 跳过单元测试执行。

部署
将目录更改为 nifi-assembly。目标目录包含二进制档案。

笔记本电脑:nifi myuser$ cd nifi-assembly
笔记本电脑:nifi-assembly myuser$ ls -lhd 目标/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 复制到单独的部署目录。提取发行版将创建一个以版本命名的新目录。

笔记本电脑:nifi-assembly myuser$ mkdir ~/example-nifi-deploy
笔记本电脑:nifi-assembly myuser$ tar xzf target/nifi-*-bin.tar.gz -C ~/example-nifi-deploy
笔记本电脑:nifi-assembly myuser$ ls -lh ~/example-nifi-deploy/
共 0
drwxr-xr-x 10 myuser mygroup 340B Apr 30 01:06 nifi-1.0.0-SNAPSHOT
开始
将目录更改为部署位置并运行以下命令以启动 NiFi。

笔记本电脑:~ myuser$ cd ~/example-nifi-deploy/nifi-*
笔记本电脑:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start
运行 bin/nifi.sh start 在后台启动 NiFi 并退出。使用 --wait-for-init 和可选的超时时间(以秒为单位),以在退出之前等待完全启动。

笔记本电脑:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh start --wait-for-init 120
认证
默认配置在启动时生成随机用户名和密码。 NiFi 将生成的凭据写入位于 NiFi 安装目录下的 logs/nifi-app.log 中的应用程序日志。

以下命令可用于在安装了 grep 的操作系统上查找生成的凭据:

笔记本电脑:nifi-1.0.0-SNAPSHOT myuser$ grep 生成的日志/nifi-app*log
NiFi 记录生成的凭据如下:

生成的用户名 [USERNAME]
生成的密码 [PASSWORD]
USERNAME 将是一个由 36 个字符组成的随机 UUID。 PASSWORD 将是一个由 32 个字符组成的随机字符串。生成的凭据将存储在 conf/login-identity-providers.xml 中,密码使用 bcrypt 哈希存储。将这些凭据记录在安全位置以访问 NiFi。

可以使用以下命令将随机用户名和密码替换为自定义凭据:

./bin/nifi.sh set-single-user-credentials <用户名> <密码>
跑步
在 Web 浏览器中打开以下链接以访问 NiFi:https://localhost:8443/nifi

Web 浏览器将显示一条警告消息,表明由于初始化期间生成的自签名证书 NiFi 存在潜在的安全风险。接受潜在的安全风险并继续加载接口是初始开发安装的一个选项。生产部署应提供来自受信任证书颁发机构的证书并更新 NiFi 密钥库和信任库配置。

接受自签名证书后访问 NiFi 将显示登录屏幕。 NiFi 登录屏幕

使用生成的凭据,在用户字段中输入生成的用户名,在密码字段中输入生成的密码,然后选择登录以访问系统。 NiFi Flow 认证屏幕

配置
NiFi 用户指南描述了如何构建数据流。

停止
运行以下命令停止 NiFi:

笔记本电脑:~ myuser$ cd ~/example-nifi-deploy/nifi-*
笔记本电脑:nifi-1.0.0-SNAPSHOT myuser$ ./bin/nifi.sh 停止
MiNiFi 子项目
MiNiFi 是 Apache NiFi 的子项目。它是一种补充数据收集方法,补充了 NiFi 在数据流管理中的核心原则,专注于在其创建源头收集数据。

MiNiFi 的具体目标包括:

体积小、重量轻
代理的集中管理
数据来源的生成
与 NiFi 集成以进行后续数据流管理和完整的信息监管链
MiNiFi 的角色应该从代理的角度来看待,该代理直接在源传感器、系统或服务器附近或直接与其相邻。

跑步:

将目录更改为“minifi-assembly”。在目标目录中,应该有一个 minifi 的构建。

$ cd minifi-assembly
$ ls -lhd 目标/迷你*
drwxr-xr-x 3 用户工作人员 102B Jul 6 13:07 minifi-1.14.0-SNAPSHOT-bin
-rw-r–r-- 1 名用户工作人员 39M Jul 6 13:07 minifi-1.14.0-SNAPSHOT-bin.tar.gz
-rw-r–r-- 1 个用户员工 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/
共 0
drwxr-xr-x 10 用户工作人员 340B Jul 6 01:06 minifi-1.14.0-SNAPSHOT
运行 MiNiFi:

将目录更改为安装 MiNiFi 的位置并运行它。

$ cd ~/example-minifi-deploy/minifi-*
$ ./bin/minifi.sh 开始
查看日志文件夹中的日志 $ tail -F ~/example-minifi-deploy/logs/minifi-app.log

如需帮助构建您的第一个数据流并将数据发送到 NiFi 实例,请参阅位于 docs 文件夹中的系统管理指南或使用 minifi-toolkit,它有助于将 NiFi 模板调整为 MiNiFi YAML 配置文件格式。

如果您正在测试正在进行的开发,您可能希望停止您的实例。

$ cd ~/example-minifi-deploy/minifi-*
$ ./bin/minifi.sh 停止
Docker 构建
构建:

运行完整的 NiFi 构建(有关说明,请参见上文)。然后从 minifi/ 子目录中,执行 mvn -P docker clean install。这将运行完整的构建,基于它创建一个 docker 镜像,并运行 docker-compose 集成测试。成功完成后,您应该有一个 apacheminifi:${minifi.version} 映像,可以使用以下命令启动它(将 m i n i f i . v e r s i o n 替 换 为 您 分 支 的 当 前 m a v e n 版 本 ) : d o c k e r r u n − d − v Y O U R C O N F I G . Y M L : / o p t / m i n i f i / m i n i f i − {minifi.version} 替换为您分支的当前 maven 版本): docker run -d -v YOUR_CONFIG.YML:/opt/minifi/minifi- minifi.version替换为您分支的当前maven版本):dockerrun−d−vYOURC​ONFIG.YML:/opt/minifi/minifi−{minifi.version}/conf/config.yml apacheminifi:${minifi.version}
注册表子项目
Registry(Apache NiFi 的一个子项目)是一个补充应用程序,它为跨一个或多个 NiFi 和/或 MiNiFi 实例的共享资源的存储和管理提供了一个中央位置。

开始注册
构建 NiFi(请参阅 NiFi 入门)
或者

仅构建 Registry 子项目:

cd nifi/nifi-registry
mvn 全新安装
如果您希望启用样式和许可证检查,请指定 contrib-check 配置文件:

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

cd nifi-registry/nifi-registry-assembly/target/nifi-registry–bin/nifi-registry-/ ./bin/nifi-registry.sh start

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

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

访问应用程序 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 提供

访问应用程序日志
日志将在 logs/nifi-registry-app.log 中可用

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

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

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

目标数据库构建命令
所有支持的 mvn verify -Ptest-all-dbs
H2(默认) mvn 验证
PostgreSQL 9.x mvn 验证 -Dspring.profiles.active=postgres
PostgreSQL 10.x mvn 验证 -Dspring.profiles.active=postgres-10
MySQL 5.6 mvn 验证 -Pcontrib-check -Dspring.profiles.active=mysql-56
MySQL 5.7 mvn 验证 -Pcontrib-check -Dspring.profiles.active=mysql-57
MySQL 8 mvn verify -Pcontrib-check -Dspring.profiles.active=mysql-8
当 Testcontainer 配置文件之一被激活时,测试输出应显示指示容器已启动的日志,例如:

2019-05-15 16:14:45.078 INFO 66091 — [main]  [mysql:5.7]:为图像创建容器:mysql:5.7
2019-05-15 16:14:45.145 INFO 66091 — [main] o.t.utility.RegistryAuthLocator:使用凭证助手/存储(docker-credential-osxkeychain)时找不到主机(index.docker.io)的凭证
2019-05-15 16:14:45.646 INFO 66091 — [main]  [mysql:5.7] : 启动容器,ID:ca85c8c5a1990d2a898fad04c5897ddcdb3a9405e692f7f75c70cc1
2019-05-15 16:14:46.437 INFO 66091 — [main]  [mysql:5.7] : 容器 mysql:5.7 正在启动:ca85c8c5a1990d2a898fad04c5897ddcdb3a95fc5c5c5c5c5c5c5c5c15
2019-05-15 16:14:46.479 INFO 66091 — [main]  [mysql:5.7]:等待数据库连接在 jdbc:mysql://localhost:33051/test?useSSL=false&allowPublicKeyRetrieval=true使用查询“SELECT 1”
Flyway 连接还应指明给定的数据库:

2019-05-15 16:15:02.114 INFO 66091 — [main] o.a.n.r.db.CustomFlywayConfiguration:确定的数据库类型是 MYSQL
2019-05-15 16:15:02.115 INFO 66091 — [ main] o.a.n.r.db.CustomFlywayConfiguration :将迁移位置设置为 [classpath:db/migration/common, classpath:db/migration/mysql]
2019-05-15 16:15:02.373 INFO 66091 — [主要] o.a.n.r.d.CustomFlywayMigrationStrategy:第一次初始化数据库…
2019-05-15 16:15:02.380 INFO 66091 — [主要] o.f.c.internal.license.VersionPrinter:Flyway Community Edition 5.2.1 by Boxfuse
2019-05-15 16:15:02.403 INFO 66091 — [main] o.f.c.internal.database.DatabaseFactory :数据库:jdbc:mysql://localhost:33051/test (MySQL 5.7)
有关可用数据源工厂的完整列表,请参阅 nifi-registry-test 模块。

获得帮助
如果您有任何疑问,可以联系我们的邮件列表:dev@nifi.apache.org(存档)。对于更具互动性的讨论,通常可以在以下位置找到社区成员:

Apache NiFi Slack 工作区:https://apachenifi.slack.com/

新用户可以使用以下邀请链接加入工作区。

IRC:irc.freenode.net 上的#nifi

要提交功能请求或错误报告,请在 https://issues.apache.org/jira/projects/NIFI/issues 提交 Jira。如果这是安全漏洞报告,请直接发送电子邮件至 security@nifi.apache.org 并首先查看 Apache NiFi 安全漏洞披露和 Apache 软件基金会安全流程。

文档
有关最新的 NiFi 文档,请参阅 https://nifi.apache.org/。

有关最新的 MiNiFi 特定文档,请参阅 https://nifi.apache.org/minifi 和 https://cwiki.apache.org/confluence/display/MINIFI。

有关最新的特定于注册表的文档,请参阅 https://nifi.apache.org/registry。

执照
除非另有说明,本软件已根据 Apache 许可证 2.0 版获得许可

根据 Apache 许可,版本 2.0(“许可”)获得许可;除非遵守许可,否则您不得使用此文件。您可以在以下网址获取许可证副本

https://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则根据许可分发的软件是按“原样”分发的,没有任何类型的明示或暗示的保证或条件。请参阅许可证以了解管理许可证下的许可和限制的特定语言。

出口管制
此发行版包括加密软件。您当前居住的国家/地区可能对加密软件的进口、拥有、使用和/或再出口到另一个国家/地区有限制。在使用任何加密软件之前,请查看您所在国家/地区有关加密软件的进口、拥有或使用和再出口的法律、法规和政策,以了解是否允许这样做。有关更多信息,请参阅 https://www.wassenaar.org/。

美国政府商务部工业和安全局 (BIS) 已将此软件归类为出口商品控制编号 (ECCN) 5D002.C.1,其中包括使用或执行非对称算法加密功能的信息安全软件。此 Apache 软件基金会分发的形式和方式使其有资格根据许可证例外 ENC 技术软件不受限制 (TSU) 例外(参见 BIS 出口管理条例,第 740.13 节)导出目标代码和源代码。

以下提供了有关包含的加密软件的更多详细信息:

Apache NiFi 使用 BouncyCastle、JCraft Inc. 和用于 SSL、SSH 和敏感配置参数保护的内置 Java 加密库。看

https://bouncycastle.org/about.html
http://www.jcraft.com/c-info.html
https://www.oracle.com/corporate/security-practices/corporate/governance/global-trade-compliance.html
有关这些库加密功能的更多详细信息。

编译完成:其中如全部编译,电脑也需安装node,编译时间较久…

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/320804.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号