带有nifi的多个流量

时间:2018-04-12 06:24:48

标签: apache-nifi

我们有多个(50+)nifi流,它们基本上都做同样的事情:从数据库中提取一些数据,将一些列附加到镶木地板并上传到hdfs。它们的区别仅在于运行的sql查询或它们所在的hdfs中的位置。

问题是如何将这些常见的nifi流量考虑在内,以便对公共流程所做的任何更改都会自动应用于所有派生流程。例如,如果我想添加一个额外的步骤来将数据发布到Kafka我想做一次并让它自动应用于所有50个流程。

我们试图让这个与nifi注册表一起使用,但它似乎不合适。基本上问题是,nifi注册表似乎适用于在一个环境中更新流(比如说wat),然后在另一个环境中自动更新它(比如说prod)。它似乎不太适合在同一环境中更新多个流,只有一个特定的例子,每次我们重新部署时,它会将每个流的名称重置为模板名称,这意味着流程最终会以相同的名称结束!

有谁知道应该如何处理像我们这样的情况,因为我猜它一定很常见。

1 个答案:

答案 0 :(得分:4)

Apache NiFi有ProcessorGroups。正如名称本身所暗示的那样,处理器组可以将一组处理器及其管道组合在一起,从而完成类似的任务。

因此,对于您的情况,您可以通过将可以与不同管道重用的公共流程移动到具有输入端口的单独处理器组来重构流程。通过连接到可重用处理器组的输入端口,连接依赖于此可重用流的外部流。根据您的要求,您也可以在此处理器组中创建输出端口,并将其与外部流程连接。

附加样本

为了解释起见,我做了一个模拟流程,所以忽略了所使用的Processor类型,而是看到我给这些处理器的名称。

以下屏幕截图显示我从两个不同的来源读取并分别将它们连接到两个不同的处理器,这些处理器对这些处理器进行源特定的更改

enter image description here

然后我将这两个流连接到处理器组的输入端口,该处理器组内部有可重用流。因此,最终上面屏幕截图中显示的两个不同流程可以使用常见的可重用流程。

enter image description here

显示可重用流程中的内容:

enter image description here

最后,输出端口output to outside将可重用流连接到外部组件Write to somewehere 我希望这可以帮助您重构复杂的流程。如果您有任何疑问,请随时回来。

相关问题