gpt4 book ai didi

java - NIFI : limit number of concurrent tasks of a NIFI processor in a NIFI-Cluster

转载 作者:行者123 更新时间:2023-11-30 06:47:30 28 4
gpt4 key购买 nike

这个问题说明了一切。我怎样才能做以下事情之一:

  • 如何限制在集群范围内为一个处理器运行的并发任务数?
  • 我运行的节点是否有任何唯一的短 ID?我可以使用这些 ID 附加到要加载的数据库表名(请参阅下面的详细信息)并为每个连接提供一个独占表。

我有一个 NIFI 集群和一个自行编写的专用处理器,它通过 JDBC 将大量数据加载到数据库中(每秒高达 20Mio 行)。它使用一些特定于数据库供应商的调优技巧,在我的特定情况下非常快。其中一个技巧需要为每个连接加载一个独占的空表。

目前,我的处理器为 NIFI 集群中的每个节点打开一个连接(它需要一个来自 DBCPConnectionPool 的连接)。集群中有大约 90-100 个节点,我将获得 90-100 个连接 - 所有这些连接都同时批量加载数据。

我正在使用 NIFI 1.3.0.0

非常感谢任何帮助或评论。很抱歉没有显示任何代码。大约 700 行并没有真正帮助解决这个问题。但我计划将其放在 Git 上,并作为开源项目 Kylo 的一部分。

最佳答案

在 NiFi 中分解任务的一种常见方法是在主节点上将流文件拆分为多个文件。然后其他节点将拉取其中一个流文件并对其进行处理。

在您的情况下,每个文件都将包含一系列要从表中提取的值。假设您有一百行并且只需要 3 个节点来提取数据。因此,您将创建 3 个流文件,每个文件都具有单独的属性值:

  1. start-row-id=1, end-row-id=33
  2. start-row-id=34, end-row-id=66
  3. start-row-id=67, end-row-id=100

然后节点将从远程进程组或队列(例如 JMS 或 SQS)中获取流文件。只有 3 个流文件,因此从连接加载数据的节点不超过 3 个。

关于java - NIFI : limit number of concurrent tasks of a NIFI processor in a NIFI-Cluster,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45842643/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com