迁移数据流NIFI

aze*_*lix 1 apache-nifi

我使用的是独立版本的NIFI,现在我已经安装了带HDF的群集NIFI版本,我想将DataFlow从独立版本迁移到群集版本。

最好的方法是什么?

Bry*_*nde 5

假设独立NiFi中有活动数据,您将:

  • 停止所有源处理器,让您的流程流血,直到任何队列中没有活动数据为止。
  • 停止HDF集群
  • 停止独立实例,并将conf / flow.xml.gz从独立实例复制到HDF群集的每个节点,位于/ var / lib / nifi / conf /
  • 启动您的HDF集群

如果您不关心独立NiFi中发生的任何事情,请跳过第一步。

更新:

另一个注意事项是处理敏感属性(即处理器中的密码字段)...

在nifi.properties中,属性nifi.sensitive.props.key用于加密flow.xml.gz中的敏感属性。您不必强制为此属性填写值,如果将其保留为空白,则代码中将包含一个默认密码。

HDF的Ambari安装会强制您为nifi.sensitive.props.key设置一个值,因此除非您在两个实例上都设置相同的值,否则HDF集群将尝试使用以下方法解密flow.xml.gz中的值与加密密钥不同的密钥。

nifi-toolkit(可从NiFi主页上下载)提供了一种工具,用于将flow.xml.gz的敏感属性密钥迁移到新值。

这是一个例子

假设nifi-1是原始NiFi实例,并且nifi-1的敏感属性键设置为“ password1”。

然后,您将该flow.xml.gz复制到nifi-2,并且nifi-2的敏感属性键为“ password2”。

运行此命令将使用原始的敏感属性密钥从nifi-1中读取flow.xml.gz,并用敏感的属性(使用新密码加密)写出新版本的nifi-2:

./nifi-toolkit-1.2.0-SNAPSHOT/bin/encrypt-config.sh -f /path/to/nifi-1/conf/flow.xml.gz -g /path/to/nifi-2/conf/flow.xml.gz -s password2 -n /path/to/nifi-1/conf/nifi.properties -o /path/to/nifi-2/conf/nifi.properties -x
Run Code Online (Sandbox Code Playgroud)
  • -f是源flow.xml.gz(nifi-1)
  • -g是目标flow.xml.gz(nifi-2)
  • -s是新的敏感属性密钥(nifi-2)
  • -n是源nifi.properties(nifi-1)
  • -o是目标nifi.properties(nifi-2)
  • -x告诉它仅处理敏感属性