增量式合作再平衡会导致连接器平衡不平衡

时间:2019-10-31 13:40:07

标签: apache-kafka apache-kafka-connect

自从升级到Kafka 2.3(也使用Kafka connect 2.3)以来,我们在设置中遇到了许多不平衡的连接器,其中应包括Kafka connect中新的增量式协作式重新平衡,请在此处说明: https://cwiki.apache.org/confluence/display/KAFKA/KIP-415%3A+Incremental+Cooperative+Rebalancing+in+Kafka+Connect

让我解释一下我们的设置,我们正在部署多个Kafka连接群集以将Kafka主题转储到HDFS上。每个hdfs-connector都会生成一个连接集群,这意味着在任何时候,一个连接集群上都恰好运行着一个连接器。这些集群被部署在Kubernetes之上,并在私有轮询中随机选择IP。

让我们举个例子。对于此hdfs连接器,我们产生了一个具有20个工作程序的连接集群。该群集上应运行40个任务,因此我们可以预期每个工作人员有2个任务。但是,如下面的命令所示,过一会儿查询连接API时,连接器似乎真的不平衡,一些工作人员甚至根本无法工作,而其中一位却拥有28个任务。

bash-4.2$ curl localhost:8083/connectors/connector-name/status|jq '.tasks[] | .worker_id' | sort |uniq -c
  ...
      1 "192.168.32.53:8083"
      1 "192.168.33.209:8083"
      1 "192.168.34.228:8083"
      1 "192.168.34.46:8083"
      1 "192.168.36.118:8083"
      1 "192.168.42.89:8083"
      1 "192.168.44.190:8083"
     28 "192.168.44.223:8083"
      1 "192.168.51.19:8083"
      1 "192.168.57.151:8083"
      1 "192.168.58.29:8083"
      1 "192.168.58.74:8083"
      1 "192.168.63.102:8083"

在这里,我们希望使用整个工人调查,并且一段时间后连接器均匀平衡。我们希望有类似的东西:

bash-4.2$ curl localhost:8083/connectors/connector-name/status|jq '.tasks[] | .worker_id' | sort |uniq -c
  ...
      2 "192.168.32.185:8083"
      2 "192.168.32.53:8083"
      2 "192.168.32.83:8083"
      2 "192.168.33.209:8083"
      2 "192.168.34.228:8083"
      2 "192.168.34.46:8083"
      2 "192.168.36.118:8083"
      2 "192.168.38.0:8083"
      2 "192.168.42.252:8083"
      2 "192.168.42.89:8083"
      2 "192.168.43.23:8083"
      2 "192.168.44.190:8083"
      2 "192.168.49.219:8083"
      2 "192.168.51.19:8083"
      2 "192.168.55.15:8083"
      2 "192.168.57.151:8083"
      2 "192.168.58.29:8083"
      2 "192.168.58.74:8083"
      2 "192.168.59.249:8083"
      2 "192.168.63.102:8083"

第二个结果实际上是通过手动杀死一些工作人员而获得的,这有点运气(我们目前还没有找到在整个连接群集上强制平衡的正确方法,这是一个反复尝试直到失败的过程。连接器均匀平衡。

是否有人已经遇到此问题并设法正确解决?

0 个答案:

没有答案