【发布时间】:2018-06-19 18:03:11
【问题描述】:
我们正在使用 NiFi 构建数据工作流,并希望最终(自定义)处理器(运行重复数据删除逻辑)仅运行一个 NiFi 集群节点(而不是在所有节点上运行)。我看到 NiFi 1.7.0(尚未发布)有一个 PrimaryNodeOnly 注释来强制执行单节点执行行为。有没有办法或解决方法在 NiFi 1.6.0 中强制执行此类行为?
注意:除了 @PrimaryNodeOnly,如果 NiFi 提供一种仅在单个节点上运行处理器的方法会更好(即,像 @SingleNodeOnly 这样的一些注释)。这样执行节点不一定是主节点,因此将减少主节点上的负载。这只是对未来的要求,并不是解决上述问题所必需的。
【问题讨论】:
-
您是想同时只运行一个处理器实例而不需要将其分配给特定节点,还是希望它每次都在同一个节点上运行?跨度>
-
我们希望同时在处理器的一个实例上运行,而无需将其分配给特定节点。不,我们不想总是在同一个节点上运行它。
-
在这种情况下,将处理器设置为在
Primary Node上运行就足够了。顺便说一句,PrimaryNodeOnly注释适用于编写处理器以将处理器的执行策略限制为Primary的开发人员。数据流设计人员/开发人员无法通过 UI 或 API 将策略更改为All Nodes。 -
@janeshs 在这种情况下,在处理器配置的调度选项卡中,如果您保持默认调度策略(计时器驱动)并将“并发任务”设置为 1,您将拥有只有一个处理器实例以盎司运行。
-
@RadhwaneChebaane - Matt Clarke 在https://community.hortonworks.com/questions/52112/nifi-load-distribution-in-getfile-processor.html中提到的“每个节点的并发任务配置”
标签: apache-nifi