【问题标题】:Ideal configuration setting for max.tasks for Kafka Source ConnectorKafka Source Connector 的 max.tasks 的理想配置设置
【发布时间】:2020-06-02 16:00:54
【问题描述】:

我正在尝试运行 HDFS 源连接器和 FileStream 源连接器。我想知道如果我们设置tasks.max > 1 它将如何工作。确保正确处理并行性不是连接器的工作吗?

例如,如果有超过 1 个任务访问文件,FileStream Source Connector 会不会有问题?连接器如何知道哪个任务正在读取哪一行以及如何确保任务之间没有冲突?

对于可能出现此类问题的连接器,是否应该设置为tasks.max=1

【问题讨论】:

  • FileStream Source 无意认真使用,仅作为示例实现。
  • 如果您对以下和任何帖子中的答案感到满意,请记住将其标记为已接受。谢谢!

标签: apache-kafka apache-kafka-connect


【解决方案1】:

不存在这样的问题,因为根据docs

tasks.max - 应该为此连接器创建的最大 个任务。如果连接器无法达到这种并行度,它可能会创建更少个任务。

例如,对于File Stream Source Connectormax.tasks 是简单的ignored,而对于JDBC Source Connector,实际任务数定义为minimumtasks.max 和表计数。

【讨论】:

  • 谢谢!但是,在我看来,Kafka 连接器默认不知道如何处理文件。我们需要在poll() 方法中实现该逻辑。正确的?假设我将tasks.max 设置为3。我们需要处理三个任务中的哪一个处理文件的哪一行。这就是tasks.max 被忽略的原因。
  • 是的,实际任务数取决于具体的数据源和轮询逻辑
猜你喜欢
  • 2020-07-09
  • 2017-06-13
  • 2020-03-14
  • 2021-08-04
  • 2021-03-25
  • 2021-08-07
  • 2018-09-13
  • 2020-07-11
  • 2020-02-29
相关资源
最近更新 更多