Kafka Topic分区重分布

在扩容完kafka的broker以后,现有的topic分区不会自动迁移到新增节点上。需要手动对每个topic进行重分布

示例:

查看当前topic

复制代码
/home/kafka/kafka/kafka-1.1.0/bin/kafka-topics.sh --zookeeper 192.168.0.1:2181 --describe --topic gwtest01

当前topic有6个分区2个副本, 分布在1001,1002,1003 三个broker上,

然后扩容kafka,新增了一个broker,新增的节点broker_id 为 1004

先创建一个kafka_topic.json 内容为:

复制代码
{"topics":[{"topic": "gwtest01"}],"version":1}

就是配置好需要处理的topic名称

生成随机重分布文件:

复制代码
/home/kafka/kafka/kafka-1.1.0/bin/kafka-reassign-partitions.sh  --broker-list 1001,1002,1003,1004  --zookeeper 192.168.0.1:2181 --generate --topics-to-move-json-file kafka_topic.json

其中:--broker-list 指定需要分布的broker id,这个brokerid不一定是按顺序生成的,想要查询当前集群所有的broker id , 可以进入每个broker的数据目录,cat meta.properties

--topics-to-move-json-file 指定刚刚的文件

命令执行完成,会输出现有topic分区分布,和生成的随机分布规划

手动将下面的json串复制到新文件partition_assignment.json

复制代码
{"version":1,"partitions":[{"topic":"gwtest03","partition":1,"replicas":[1004,1001],"log_dirs":["any","any"]},{"topic":"gwtest03","partition":3,"replicas":[1002,1003],"log_dirs":["any","any"]},{"topic":"gwtest03","partition":0,"replicas":[1003,1004],"log_dirs":["any","any"]},{"topic":"gwtest03","partition":5,"replicas":[1004,1002],"log_dirs":["any","any"]},{"topic":"gwtest03","partition":2,"replicas":[1001,1002],"log_dirs":["any","any"]},{"topic":"gwtest03","partition":4,"replicas":[1003,1001],"log_dirs":["any","any"]}]}

执行分布:

复制代码
/home/kafka/kafka/kafka-1.1.0/bin/kafka-reassign-partitions.sh  --zookeeper 192.168.0.1:2181 --execute --reassignment-json-file partition_assignment.json

命令执行完再去查看topic分区状态,发现迁移完成

也可以使用以下命令查看分布的状态:

复制代码
/home/kafka/kafka/kafka-1.1.0/bin/kafka-reassign-partitions.sh  --zookeeper 192.168.0.1:2181 --verify --reassignment-json-file  partition_assignment.json
相关推荐
筑梦之路1 天前
docker-compose方式部署kafka集群(Kraft方式)——筑梦之路
docker·容器·kafka
用户1494484813203 天前
同为消息队列,RocketMQ 和 Kafka 的底层设计差在哪?
kafka
开开心心就好3 天前
办公软件卸载不干净?专用工具一键清残留
java·前端·人工智能·智能手机·kafka·excel·memcache
ly76894 天前
ISR 收缩与 HW 推进:副本同步的边界条件与 UnderReplicated 排障
数据库·kafka·c#·linq·isr·hw·副本同步
此时不提桶,更待何时6 天前
06-09-A-Kafka架构与存储原理详解
架构·kafka·linq
醉颜凉6 天前
Kafka 与 RabbitMQ/RocketMQ 选型对比:场景匹配、性能基准与迁移成本
kafka·消息队列·rabbitmq·rocketmq·中间件选型
筑梦之路7 天前
K8S yaml文件部署kafka集群(Kraft模式)——筑梦之路
容器·kafka·kubernetes
筑梦之路7 天前
Kafka KRaft 模式 Kubernetes 部署手册(StatefulSet + apache/kafka 官方镜像)——筑梦之路
kafka·kubernetes·apache
智码看视界8 天前
技术选型指南:Pulsar vs Kafka:消息队列选型终极对比与压测
kafka·消息队列·pulsar·消息中间件·流处理·高吞吐·架构选型
俊哥大数据8 天前
Flink1.20.3 实时消费 Kafka 数据并解析入湖 Paimon1.4.2 全流程实战
分布式·flink·kafka·数据湖·paimon