Apache nifi 迁移数据流NIFI

Apache nifi 迁移数据流NIFI,apache-nifi,Apache Nifi,我在独立版本中使用NIFI,现在我已经安装了一个带有HDF的群集NIFI版本,我想将我的数据流从独立版本迁移到群集版本 最好的方法是什么?假设您的独立NiFi中有活动数据,您会: 停止所有源处理器,让流溢出,直到任何队列中都没有活动数据。 停止HDF群集 停止独立实例并将conf/flow.xml.gz从独立实例复制到位于/var/lib/nifi/conf的HDF集群的每个节点/ 启动HDF群集 如果您不关心独立NiFi中发生的任何事情,请跳过第一步 更新: 另一个考虑事项是处理敏感属性,即处

我在独立版本中使用NIFI,现在我已经安装了一个带有HDF的群集NIFI版本,我想将我的数据流从独立版本迁移到群集版本


最好的方法是什么?

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

停止所有源处理器,让流溢出,直到任何队列中都没有活动数据。 停止HDF群集 停止独立实例并将conf/flow.xml.gz从独立实例复制到位于/var/lib/nifi/conf的HDF集群的每个节点/ 启动HDF群集 如果您不关心独立NiFi中发生的任何事情,请跳过第一步

更新:

另一个考虑事项是处理敏感属性,即处理器中的密码字段

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

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

可以从nifi主页下载的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
-f是源flow.xml.gz nifi-1 -g是目标flow.xml.gz nifi-2 -s是新的敏感性质键nifi-2 -n是源nifi。属性nifi-1 -o是目的地nifi。属性nifi-2 -x告诉它只处理敏感属性
假设您的独立NiFi中有活动数据,您将:

停止所有源处理器,让流溢出,直到任何队列中都没有活动数据。 停止HDF群集 停止独立实例并将conf/flow.xml.gz从独立实例复制到位于/var/lib/nifi/conf的HDF集群的每个节点/ 启动HDF群集 如果您不关心独立NiFi中发生的任何事情,请跳过第一步

更新:

另一个考虑事项是处理敏感属性,即处理器中的密码字段

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

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

可以从nifi主页下载的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
-f是源flow.xml.gz nifi-1 -g是目标flow.xml.gz nifi-2 -s是新的敏感性质键nifi-2 -n是源nifi。属性nifi-1 -o是目的地nifi。属性nifi-2 -x告诉它只处理敏感属性
您使用的是哪个版本的NiFi?@JDP10101 NiFi 1.1.0您使用的是哪个版本的NiFi?@JDP10101 NiFi 1.1.0再次启动HDF群集后,我出现此错误:javax.crypto.BadPaddingException:pad block已损坏您的原始流中是否有任何具有敏感属性(即密码字段)的处理器?是的,我有一些invokehttp在原始实例上使用sensitive fieldOk时,您是否在nifi.properties中为nifi.sensitive.props.key设置了值?如果是,请确保在新群集上设置了相同的值。请参阅我对答案所做的更新,以包括如何迁移敏感属性值的密码。重新启动HDF群集后,我出现此错误
n:javax.crypto.BadPaddingException:pad block损坏了您的原始流中是否有任何具有敏感属性(即密码字段)的处理器?是的,我在您的原始实例上有一些带有敏感字段OK的invokehttp。您在nifi.properties中为nifi.sensitive.props.key设置了值吗?如果是这样,请确保在新群集上设置了相同的值。请参阅我对答案所做的更新,以包括如何迁移敏感属性值的密码。