Apache nifi 在nifi集群中分发从GetMongo读取的数据
我有一个集群nifi设置,我们运行的GetMongo处理器的主模式为on,这样就不会获取重复的数据。这似乎很有效。然而,一旦我有了这些数据,我希望链中的以下进程在集群上运行,就像在并行处理中对已经获取的数据进行处理一样。不知何故,这并没有发生。所以我的问题是,假设GetMongo获取了30000条记录,并且它们在队列中: 1) 如何检查处理器是在单个节点上还是在所有节点上运行其进程。配置已设置为所有节点,但当处理器运行时,我看到它在右上角显示1 2) 如果一个处理器被设置为仅在主节点上运行,那么流中的所有其他处理器是否也在主模式下运行 例如:Apache nifi 在nifi集群中分发从GetMongo读取的数据,apache-nifi,Apache Nifi,我有一个集群nifi设置,我们运行的GetMongo处理器的主模式为on,这样就不会获取重复的数据。这似乎很有效。然而,一旦我有了这些数据,我希望链中的以下进程在集群上运行,就像在并行处理中对已经获取的数据进行处理一样。不知何故,这并没有发生。所以我的问题是,假设GetMongo获取了30000条记录,并且它们在队列中: 1) 如何检查处理器是在单个节点上还是在所有节点上运行其进程。配置已设置为所有节点,但当处理器运行时,我看到它在右上角显示1 2) 如果一个处理器被设置为仅在主节点上运行,那么
在上面的屏幕截图中,我的getmongo正在主节点中运行,如何确保执行脚本处理器在所有3个nifi节点上并行运行。现在,如果我在executescript进程中检查视图状态历史记录,我会看到数据只流经主节点。是的,这是正确的。当您将源处理器标记为仅运行主节点时,所有后续步骤将仅在该节点上发生,因为数据仅驻留在该节点(主节点),即使NiFi处于集群模式。要使其按您想要的方式工作,您可以采用以下两种方法之一: 方法#1:RPG和站点到站点的组合 在这里,您的流程将如下所示:
- 在根组(NiFi画布的最顶层)上创建输入端口
- 使
仅在主节点上运行GetMongo
- 将处理器的
关系连接到远程处理器组(RPG)。此RPG可以使用群集详细信息本身进行配置,并将其配置为连接到步骤1中添加的端口success
- 从输入端口,将其连接到处理逻辑
- 将源处理器的输出(在本例中为
)与后续处理器连接GetMongo
- 右键单击源处理器的
关系success
- 单击
configure
- 转到
选项卡设置
- 将
设置为所需的策略,在您的情况下最好是负载平衡策略
Roudd-robin