• 欢迎关注微信公众号:九万里大数据
  • 请使用Ctrl+D收藏本站到书签栏
  • 手机也可访问本站 jwldata.com

Kafka的分区重分配

大数据技术 九万里大数据 2年前 (2021-02-19) 731次浏览 0个评论 扫描二维码
文章目录[隐藏]

Kafka的分区重分配,可用于broker机器下线前的数据搬迁,topic的副本数增大或减小等。

生成Kafka分区重分配方案

首先,查看当前topic的partition分布情况

kafka-topics --zookeeper zk1:2181 --topic topic_replica_test --describe

Kafka的分区重分配

假定下面我们想将该topic的partition从broker id为164,165的brokers上移走。

创建topic-reassign.json文件,内容为

{"version":1,"topics":[{"topic":"topic_replica_test"}]}

生成Kafka分区重分配方案

kafka-reassign-partitions --zookeeper zk1:2181 --generate --topics-to-move-json-file topic-reassign.json --broker-list 150,151,152

Kafka的分区重分配

可以看到,kafka-reassign-partitions工具帮助生成了当前的分区副本的分布方案,以及建议的分区副本的分布方案。

Current partition replica assignment
{"version":1,"partitions":[{"topic":"topic_replica_test","partition":0,"replicas":[164,165,150],"log_dirs":["any","any","any"]},{"topic":"topic_replica_test","partition":2,"replicas":[150,151,164],"log_dirs":["any","any","any"]},{"topic":"topic_replica_test","partition":1,"replicas":[165,150,151],"log_dirs":["any","any","any"]}]}

我们将Current partition replica assignment的备份保存,用于后期回滚操作。

Proposed partition reassignment configuration
{"version":1,"partitions":[{"topic":"topic_replica_test","partition":0,"replicas":[152,150,151],"log_dirs":["any","any","any"]},{"topic":"topic_replica_test","partition":2,"replicas":[151,152,150],"log_dirs":["any","any","any"]},{"topic":"topic_replica_test","partition":1,"replicas":[150,151,152],"log_dirs":["any","any","any"]}]}

我们将Proposed partition reassignment configuration保存到另外一个json文件中(比如project.json),这个就是系统建议的一个可行性分区重分配方案。注意,这里并没有真正执行重分配的动作。

分区重分配操作

然后使用这个project.json重分配方案,正式执行分区重分配。同理,我们也可以保存当前分区分配情况用于备份(前面在生成重分配方案时已经备份过的可以忽略)。

kafka-reassign-partitions --zookeeper zk1:2181 --reassignment-json-file project.json --execute

Kafka的分区重分配

检查重分配操作的进度

kafka-reassign-partitions --zookeeper zk1:2181 --reassignment-json-file project.json --verify

Kafka的分区重分配

查看当前topic重分配操作后的partition分布情况

kafka-topics --zookeeper zk1:2181 --topic topic_replica_test --describe

Kafka的分区重分配

可以看到,这个topic的副本已经从164,165的上移走了,全部落在了150,151,152上。


欢迎关注我的公众号“九万里大数据”,原创技术文章第一时间推送。


Kafka的分区重分配


本站文章,如未注明,均为原创 | 原创文章版权归九万里大数据所有,未经许可不得转载。
本文链接:Kafka的分区重分配
喜欢 (147)

您必须 登录 才能发表评论!