我正在探索NiFi文档。 我必须承认,这是有据可查的开源项目在那里之一。
我的理解是,该处理器的集群中的所有节点上运行。 不过,我想知道内容如何群集节点之间分布,当我们使用内容拉动处理器一样FetchS3Object,FetchHDFS等。如果遇到FetchHDFS或FetchSFTP处理器,将所有节点进行连接到源? 它分割的内容和从多个节点提取或一个节点取回它的内容和负载平衡在下游队列?
我正在探索NiFi文档。 我必须承认,这是有据可查的开源项目在那里之一。
我的理解是,该处理器的集群中的所有节点上运行。 不过,我想知道内容如何群集节点之间分布,当我们使用内容拉动处理器一样FetchS3Object,FetchHDFS等。如果遇到FetchHDFS或FetchSFTP处理器,将所有节点进行连接到源? 它分割的内容和从多个节点提取或一个节点取回它的内容和负载平衡在下游队列?
我认为,这个文件有一个回答你的问题:
https://community.hortonworks.com/articles/16120/how-do-i-distribute-data-across-a-nifi-cluster.html
对于其他文件存储的想法是一样的。
将所有节点进行连接到源?
是。 如果没有您的处理器限制为仅在主节点上的工作 - 它运行在所有节点上。
通过@dagget答案历来是处理这种情况,往往被称为“名单+取”模式的方法。 在集群上主节点列表处理器只运行,列表发送到RPG进行重新分配,输入端口接收列表和连接到并行获取所有节点上运行的取处理器。
在1.8.0版本中,现在有加载其删除了RPG的需要平衡的连接。 你仍然运行在只有主节点列表处理器,但随后将其直接连接到取处理器,并配置之间的队列负载均衡。