Apache kafka 卡夫卡:分区重新分配未发生

Apache kafka 卡夫卡:分区重新分配未发生,apache-kafka,Apache Kafka,在Kafka代理之间迁移数据时出错 我正在使用kafka重新分配工具将分区重新分配给另一个代理,而不进行任何限制(因为它没有使用下面的命令)。共有50个主题的大约400个分区 Apache Kafka 1.1.0 Confluent Docker Image tag : 4.1.0 命令: kafka-reassign-partitions --zookeeper IP:2181 --reassignment-json-file proposed.json --execute —thrott

在Kafka代理之间迁移数据时出错

我正在使用kafka重新分配工具将分区重新分配给另一个代理,而不进行任何限制(因为它没有使用下面的命令)。共有50个主题的大约400个分区

Apache Kafka 1.1.0
Confluent Docker Image tag : 4.1.0
命令:

kafka-reassign-partitions --zookeeper IP:2181  --reassignment-json-file proposed.json --execute —throttle 100000000
一段时间后,我能够在目标代理上连续看到以下错误

[2019-09-21 11:24:07,625] INFO [ReplicaFetcher replicaId=4, leaderId=0, fetcherId=0] Error sending fetch request (sessionId=514675011, epoch=INITIAL) to node 0: java.io.IOException: Connection to 0 was disconnected before the response was read. (org.apache.kafka.clients.FetchSessionHandler)

[2019-09-21 11:24:07,626] WARN [ReplicaFetcher replicaId=4, leaderId=0, fetcherId=0] Error in response for fetch request (type=FetchRequest, replicaId=4, maxWait=500, minBytes=1, maxBytes=10485760, fetchData={TOPIC-4=(offset=4624271, logStartOffset=4624271, maxBytes=104
8576), TOPIC-2=(offset=1704819, logStartOffset=1704819, maxBytes=1048576), TOPIC-8=(offset=990485, logStartOffset=990485, maxBytes=1048576), TOPIC-1=(offset=1696764, logStartOffset=1696764, maxBytes=1048576), TOPIC-7=(offset=991507, logStartOffset=991507, maxBytes=10485
76), TOPIC-5=(offset=988660, logStartOffset=988660, maxBytes=1048576)}, isolationLevel=READ_UNCOMMITTED, toForget=, metadata=(sessionId=514675011, epoch=INITIAL)) (kafka.server.ReplicaFetcherThread)

java.io.IOException: Connection to 0 was disconnected before the response was read
    at org.apache.kafka.clients.NetworkClientUtils.sendAndReceive(NetworkClientUtils.java:97)
    at kafka.server.ReplicaFetcherBlockingSend.sendRequest(ReplicaFetcherBlockingSend.scala:96)
    at kafka.server.ReplicaFetcherThread.fetch(ReplicaFetcherThread.scala:220)
    at kafka.server.ReplicaFetcherThread.fetch(ReplicaFetcherThread.scala:43)
    at kafka.server.AbstractFetcherThread.processFetchRequest(AbstractFetcherThread.scala:146)
    at kafka.server.AbstractFetcherThread.doWork(AbstractFetcherThread.scala:111)
    at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:82)
动物园管理员状态:

 ls /admin/reassign_partitions
[]
我使用的是
t2.medium
类型EC2实例和大小为120GB的gp2类型EBS卷

我可以从所有经纪人那里联系到动物园管理员

[zk:localhost:2181(已连接)3]ls/brokers/ids[0,1,2,3]

我为所有代理使用IP地址,因此DNS不匹配也不是这样

另外,我在zookeeper中看不到任何预定重新分配的主题

[zk: localhost:2181(CONNECTED) 2] ls /admin/reassign_partitions
[]
有趣的是,我可以看到上面没有列出的分区的数据正在堆积。但是错误中列出的分区目前还没有迁移

我正在使用融合卡夫卡码头形象

卡夫卡经纪人设置:

如果您能给我们提供更多关于您的拓扑结构的详细信息,也许我们可以更好地理解这个问题

一些想法: -您能在kafka-0:2181通过zookeeper cli进行连接吗?卡夫卡-0解析为正确的主机?
-如果正在进行重新分配,则您必须通过删除zookeeper中的相应键手动停止此操作(警告,这可能会导致某些主题或分区被破坏),或者您必须等待此作业完成。您能否监视正在进行的重新分配并提供一些信息?

通过增加所有目标代理中的
replica.socket.receive.buffer.bytes
的值,可以解决此问题


更改上述参数并重新启动代理后。我能够在上述分区中看到数据。

这里的Confluent没有什么特别之处(事实上,没有什么需要迁移的,因为您可以在现有的Apache Kafka安装上添加所有其他Confluent服务)。你是否尝试过减少移动的主题数量?或者提供多个Zookeepers,以便在代理上io处于高位时连接将尝试多次而不断开?我无法减少主题的数量,因为它表明正在进行重新分配。我还在Kafka配置中添加了所有zookeeper连接字符串。代理0上有哪些错误日志?@AlexandreDupriez我在代理0、1或2中没有看到任何错误。我已更新了关于您的几个问题的答案。此外,我无法监控重新分配。