说明
Kafka提供了一个工具,用于调整Topic中各个分区的复本数据。工具名称叫 kafka-reassign-partitions.sh 。
过程
创建一个Topic,共2个分区,副本数为2(共2份,含原始数据):
|
/opt/kafka/bin/kafka-topics.sh --zookeeper data01:2181,data02:2181,data03:2181/kafka --create --replication-factor 2 --partitions 2 --topic testTopic1 |
查看该Topic。分区0的Leader是1,分区1的Leader是2:
|
[root@data01 bin]# /opt/kafka/bin/kafka-topics.sh --describe --zookeeper data01:2181,data02:2181,data03:2181/kafka --topic testTopic1 Topic:testTopic1 PartitionCount:2 ReplicationFactor:2 Configs: Topic: testTopic1 Partition: 0 Leader: 1 Replicas: 1,2 Isr: 1,2 Topic: testTopic1 Partition: 1 Leader: 2 Replicas: 2,3 Isr: 2,3 [root@data01 bin]# |
准备一些数据,放在data.file中,然后将数据灌入Kakfa Topic:
|
/opt/kafka/bin/kafka-console-producer.sh --broker-list data01:9092,data02:9092,data03:9092 --topic testTopic1 < data.file |
在各broker的数据目录下,可以看到当前对应的Topic分区目录:
|
[root@cheyo tmp]# dsh -g kafka -c "du -sh /opt/kafka/kafka-logs/testTopic*" data01: 44K /opt/kafka/kafka-logs/testTopic1-0 data02: 44K /opt/kafka/kafka-logs/testTopic1-0 data02: 4.0K /opt/kafka/kafka-logs/testTopic1-1 data03: 4.0K /opt/kafka/kafka-logs/testTopic1-1 [root@cheyo tmp]# |
调整副本数据的配置是以json文件描述的,然后json文件作为参数传递给相关工具。json文件中描述了各个分区的复本如何放置。这里,我们分别为testTopic1的两个分区在原来的基础上新增加了第3个分区。 Continue reading "修改Kafka Topic的分区副本数"