我正在研究NiFi,其中我使用过list,fetch等处理器。列表文件处理器在新文件到达提到的目录系统时列出文件。到目前为止,我已经处理了从2016年1月至今的一年数据文件。
现在我想将flow.xml文件导出到新环境并继续处理。当我启动列表处理器时,它从头开始,即2016年1月。无论如何要继续它在之前的环境处理中留下的列表处理器。
答案 0 :(得分:2)
在独立的NiFi实例中,状态由state-management.xml中配置的本地状态提供程序存储:
<local-provider>
<id>local-provider</id>
<class>org.apache.nifi.controller.state.providers.local.WriteAheadLocalStateProvider</class>
<property name="Directory">./state/local</property>
<property name="Always Sync">false</property>
<property name="Partitions">16</property>
<property name="Checkpoint Interval">2 mins</property>
</local-provider>
您可以看到磁盘上的位置位于./state/local中,因此您需要将此目录结构及其下的所有内容复制到另一个NiFi实例上的相同位置。
此外,这仅在您将flow.xml.gz从一个实例复制到另一个实例时才有效,因为状态是根据组件的UUID存储的,因此您需要UUID保持不变。如果您使用模板移动流程,那么您将获得新的UUID并且状态不会排队。