我遇到了用于Kafka Connect的HDFS SInk连接器的问题。它陷入了无限的再平衡循环中。根据连接器的github页面上的讨论之一,一种可能的解决方案是对使用者配置进行一些更改。例如
session.timeout.ms=10000
heartbeat.interval.ms=3000
request.timeout.ms=1810000
max.poll.interval.ms=1800000
但是我的问题是我不知道在哪里做。我的理解是,使用者配置是在正在使用的应用程序中配置的,但是在源代码中我看不到对这些配置的任何引用。
如果将它们添加到接收器连接器的配置文件中,然后重新启动连接任务,则从日志中可以看到上述配置保持不变。
如果我将它们添加到connect-distributed.properties中,然后重新启动工作器和任务,则从日志中可以看到上述配置保持不变。
在哪里设置这些设置,以便Kafka-Connect拾取它们?
答案 0 :(得分:0)
在使用connect-distributed.properties配置文件时,设置使用者配置的方法是在“消费者”前添加。到每个配置(或生产者配置为“生产者”。)
所以
session.timeout.ms=10000
成为
consumer.session.timeout.ms=10000
在使用Confluents(尚未准备好生产)时,需要对Kafka Connect的Helm图表进行一些更改。首先,所有其他配置都需要放在values.yaml的customEnv部分中。其次,您要在此处设置的每个配置都必须全部大写,并带有“。”。取而代之 '_'。第三,每个配置都需要预先添加“ CONNECT _”
所以
session.timeout.ms=10000
成为
CONNECT_SESSION_TIMEOUT_MS: 10000
这仅适用于自动从工作人员那里开始的消费者。
从任务开始的使用者需要进行其他更改。在“ CONNECT_”之后,您必须放置“ CONSUMER_”。 (对于生产者配置,您需要使用'PRODUCER _')
所以
session.timeout.ms=10000
成为
CONNECT_CONSUMER_SESSION_TIMEOUT_MS: 10000