首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kafka没有正确地分配分区。

Kafka没有正确地分配分区。
EN

Stack Overflow用户
提问于 2022-08-04 07:35:07
回答 1查看 138关注 0票数 0

我正在运行一个卡夫卡集群上的3个相同的VM,4核和16 of的RAM。主题配置包括每个分区的6个不同分区。卡夫卡版本: kafka_2.13-2.8.0动物园管理员版本: 3.5.7

代码语言:javascript
运行
复制
broker.id=0
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data2
num.partitions=6
default.replication.factor=2
num.recovery.threads.per.data.dir=2
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=2
transaction.state.log.min.isr=1
log.retention.hours=48
log.segment.bytes=268435456
log.retention.check.interval.ms=300000
zookeeper.connect=kafka-1:2181,kafka-2:2181,kafka-3:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
message.max.bytes=2000000
listeners=PLAINTEXT://kafka-1:9092
advertised.listeners=PLAINTEXT://kafka-1:9092
group.initial.rebalance.delay.ms=20000
controlled.shutdown.enable=true

所有服务器都在同一个租户中,也在同一个子网中。集群重新启动后,分区主要分配给两个服务器,而第三个服务器只有几个剩余的分区。

有没有办法在不重新启动集群的情况下重新平衡分区?另外,集群重新启动并不能保证分区的正确分布。

EN

回答 1

Stack Overflow用户

发布于 2022-08-04 08:20:41

不知道你为什么会有这样一个不平衡的集群。除非您只从两个代理开始,然后添加第三个代理,否则分区应该已经结束了,更好地分布在三个代理之间。

无论如何,Kafka在重新启动时不会重新分发分区,因为它需要跨代理移动所有分区数据。你需要手动指示卡夫卡移动它们。

卡夫卡包含的开源工具叫做kafka-reassign-partitions。如果添加了一个新代理:https://kafka.apache.org/32/documentation.html#basic_ops_cluster_expansion,则需要遵循相同的过程。

  1. 使用--generate选项生成重新分配计划。如果需要,检查和编辑生成的json文件。
  2. 使用--execute选项执行计划。
  3. 使用--verify标志检查进度。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73232010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档