首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用流创建正在运行的nifi docker镜像

如何使用流创建正在运行的nifi docker镜像
EN

Stack Overflow用户
提问于 2020-09-22 01:50:08
回答 2查看 861关注 0票数 1

我启动了一个apache/nifi容器,构建并配置了一个流。

我想以某种方式将这个流保存在某个地方,这样它就可以加载到运行Nifi的新docker镜像中。

这样,“用户”只需执行“docker run...”将启动nifi的一个实例,加载并启动流。

我不清楚是什么文件(nar、xml等)需要对用户要运行的映像可用。

EN

回答 2

Stack Overflow用户

发布于 2020-09-22 02:49:59

如果您没有自定义内容,可以保存/conf目录中的flow.xml.gz以保存流。

如果还希望保存内容流文件或当前流文件,则还应保存flowfile repositorycontent repository

如果您有海关处理程序,则应将nar保存在lib目录中。

在启动nifi之前,所有内容都应该存在于nifi目录中。

票数 2
EN

Stack Overflow用户

发布于 2021-01-03 09:57:14

您可以使用nifi-toolkit将流和进程组部署到Apache实例,而不必依赖于NiFi。

https://nifi.apache.org/docs/nifi-docs/html/toolkit-guide.html

此设置要求您具备:

  • Apache NiFi
  • Apache NiFi-注册表

下面是一个基于空的Apache NiFi实例和Nifi-Registry的工作示例(假设您的Apache NiFi-Registry容器的主机名是nifi-registry,它的端口是默认的18080)。在Apache NiFi 1.12.1上测试。

首先,您需要通过Apache Registry为您的流生成JSON文件。

  1. 将注册表添加到您的Apache NiFi:

/opt/nifi/nifi-toolkit-current/bin/cli.sh nifi create-reg-client -rcn registry -rcu http://nifi-registry:18080

创建将包含您的流的流程组。右键单击它,然后单击“版本”和“启动版本控制”。这将在NiFi注册表中保存您的流。在GUI中处理您的流程,当您准备好时,右键单击您的进程组并提交您最后的更改。现在,您需要从注册表导出流的JSON。

/opt/nifi/nifi-toolkit-current/bin/cli.sh registry export-flow-version -u http://nifi-registry:18080 -f <flowid> -fv <flowversion> > <json_file>

既然您的JSON流已经准备好了,您就可以将其部署到一个新的环境中了。

  1. 在注册表中创建一个存储桶。这将返回新生成的存储桶id。

/opt/nifi/nifi-toolkit-current/bin/cli.sh registry create-bucket -u http://nifi-registry:18080 -bn <bucketname>

  1. 使用之前生成的存储桶id创建流。这将返回新生成的流id:

/opt/nifi/nifi-toolkit-current/bin/cli.sh registry create-flow -u http://nifi-registry:18080 -b <bucketid> -fn <flowname>

Apache导入您的流(必须先前已从

  1. ->中导出并右键单击下载流,并且在Apache中可用

/opt/nifi/nifi-toolkit-current/bin/cli.sh registry import-flow-version -u http://nifi-registry:18080 -f <flowid> -i <json_file>

  1. 将流部署为进程组。这将返回新生成的进程组id。

/opt/nifi/nifi-toolkit-current/bin/cli.sh nifi pg-import -b <bucketid> -f <flowid> -fv <flowversion>

  1. 启动进程组服务(如果有)

/opt/nifi/nifi-toolkit-current/bin/cli.sh nifi pg-enable-services -pgid <processgroupid>

  1. 启动进程组的处理器(如果有):

/opt/nifi/nifi-toolkit-current/bin/cli.sh nifi pg-start -pgid <processgroupid>

请记住,在执行这些命令之前,Apache NiFi应该已经启动并运行。如果您计划将这些指令嵌入到Dockerfile中,则应该实现一些等待服务启动的逻辑。

您还可以看看NiFi工具包的这个Python包装器:

https://github.com/Chaffelson/nipyapi

最后,Apache NiFi还提供了一些REST API,它们可能会对您有所帮助:

https://nifi.apache.org/docs/nifi-docs/rest-api/index.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63997535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档