使用NiFi v0.6.1有办法导入备份/档案吗?
我所说的备份是指当您调用时生成的文件
POST /controller/archive
使用 REST api 或“控制器设置”(工具栏按钮),然后使用“备份流程”(链接)。
我尝试解压缩备份并将其作为模板导入,但这不起作用。但将其与导出的模板文件进行比较后,发现格式有相当大的不同。但也许有办法将其转化为模板?
目前我当前的解决方法是不选择顶级流程上的任何组件,然后选择“创建模板”;这将添加一个包含我所有组件的模板。然后我就把它导出来。我的问题是通过 REST API 实现自动化有点棘手。我使用 Fiddler 来确定 UI 正在做什么,它首先生成一个包含所有组件(标签、处理器、连接等)的代码片段。然后它使用片段 ID 调用创建模板 (
POST /nifi-api/contorller/templates
)。因此,模板调用很简单,但生成片段的定义需要一些工作。
注意:一旦实现以下功能请求,我假设我只会使用它:
https://cwiki.apache.org/confluence/display/NIFI/Configuration+Management+of+Flows
NiFi 实例的整个流程存储在 conf 目录中名为
flow.xml.gz
的文件中(集群中为 flow.xml.tar
)。备份功能本质上是在给定时间点拍摄该文件的快照并将其保存到 conf/archive
目录。稍后,您可以停止 NiFi 并将 conf/flow.xml.gz
替换为这些备份之一,以将流量恢复到该状态。
模板的格式与
flow.xml.gz
不同。模板更面向公众且可共享,并且可用于表示流程的一部分,如果未选择任何组件,则可用于表示整个流程。有些人使用模板作为模型来部署他们的流程,本质上是将他们的流程组织到流程组中并为每个组制作模板。该项目提供了一些使用模板的自动化:https://github.com/aperepel/nifi-api-deploy
您只需停止 NiFi,替换 nifi 流配置文件(例如,这可能是
flow.xml.gz
目录中的 conf
)并重新启动 NiFi。
如果您找不到它,请检查您的
nifi.properties
文件中的字符串 nifi.flow.configuration.file=
以找出您也设置了什么。
如果您使用集群模式,则只需在 NCM 上执行此操作。