修改Kafka Topic的分区副本数

说明

Kafka提供了一个工具,用于调整Topic中各个分区的复本数据。工具名称叫 kafka-reassign-partitions.sh 。

过程

创建一个Topic,共2个分区,副本数为2(共2份,含原始数据):

查看该Topic。分区0的Leader是1,分区1的Leader是2:

准备一些数据,放在data.file中,然后将数据灌入Kakfa Topic:

在各broker的数据目录下,可以看到当前对应的Topic分区目录:

调整副本数据的配置是以json文件描述的,然后json文件作为参数传递给相关工具。json文件中描述了各个分区的复本如何放置。这里,我们分别为testTopic1的两个分区在原来的基础上新增加了第3个分区。

replication.json:

执行更新复本操作

这个操作需要一些时间,我们可以通过如下命令查看进度(将上述命令中的 execute 参数改为 verify 参数:

检查

操作完成后,再次查看topic的详细信息,可以看到相应的分区已经增加:

相应的数据目录也已经增加:

工具/kafka-reassign-partitions.sh说明

这个工具有三种参数:

1、带 generate 参数:生成建议的分区重分布方案

2、带 execute 参数:根据指定的分区重分布方案执行分区调整动作

3、带 verify 参数:查看 exceute 操作的结果。

本文档中使用了2和3两个参数。

 

补充

按这个用法,这个工具不仅可以用来增加分区数,在扩容broker数量等场景下,也可以用来调整各个分区在各个节点上的分布。

 

 

 

 

参考文档

Kafka如何动态增加Topic的副本(Replication)

 

 

 

 

 

Leave a Reply

Your email address will not be published.