【问题标题】:Apache NiFi - "Execution" OptionApache NiFi - “执行”选项
【发布时间】:2019-05-16 20:47:36
【问题描述】:

谁能告诉我 Apache NiFi 中“执行”选项的用途是什么?

此选项适用于大多数处理器,我们目前可以选择 2 个值 - 主节点和所有集群。

我能想到的一个用例是 - 从 Kafka 读取数据并且您想要对读取进行负载平衡。

我可能对这个选项的使用感到困惑,因为它是为大多数处理器提供的。

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    仅主节点适用于源处理器应仅在一个节点上执行的情况。例如,如果您在 3 节点集群中的流程开始时有一个 GetSFTP 处理器,那么您不希望它在所有 3 个节点上运行,因为它们都会获得相同的文件。

    仅主节点最常见的用法可能是 List + Fetch 模式。该流程从仅在主节点上运行的 ListHDFS 等列表处理器开始,然后是负载平衡连接,将列表分发到所有节点,连接到在所有节点上运行的 FetchHDFS。

    https://pierrevillard.com/2018/10/29/nifi-1-8-revolutionizing-the-list-fetch-pattern-and-more/

    不是流中第一个处理器的处理器永远不应真正设置为主节点,即使应用程序允许这样做。这可能会得到改善。

    【讨论】:

    • 知道为什么只为 Execution 提供了 2 个选项吗?为什么不提供“仅在这么多节点上”之类的东西?假设我的集群有 4 台机器,如果我希望我的 Kafka 消费者只在 2 个节点上工作,那是没有办法的。
    • 我们最终可以实现节点组,但它更复杂而且通常没有必要。在大多数情况下,您希望一切都在所有节点上运行,而在少数特殊情况下,您只需要一个节点。
    • 是的,它可能对像 Kafka 消费者这样的场景很有用 - 因为如果我的主题只有 2 个分区,那么将消费者部署在 4 个节点中是没有意义的..
    • 当然,但它不会损害在所有节点上运行的任何东西,因为消费者只会在 4 个节点中的 2 个上消费,而另外 2 个什么也不做。
    • 这将是 ConsumeKafka 下的第二张图片,其中有 3 个 NiFi 节点和 2 个分区 - bryanbende.com/development/2016/09/15/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多