kafka数据迁移实践 (4)

检查分配的状态,执行命令:

./kafka-reassign-partitions.sh --zookeeper tbds-172-16-16-11:2181 --reassignment-json-file /tmp/move_kafka_topic_result.json --verify

得到结果:

Status of partition reassignment: Reassignment of partition [test_topic,0] completed successfully Reassignment of partition [test_topic,2] completed successfully Reassignment of partition [test_topic,1] completed successfully

表明分区数据重新分步任务已经完成。

2.5 再次获取test_topic的分区分布情况

再次查看各个分区的分布情况,执行命令:

./kafka-topics.sh --zookeeper 172.16.16.11:2181 --topic test_topic --describe

得到返回结果:

Topic:test_topic PartitionCount:3 ReplicationFactor:2 Configs: Topic: test_topic Partition: 0 Leader: 1002 Replicas: 1001,1002 Isr: 1002,1001 Topic: test_topic Partition: 1 Leader: 1003 Replicas: 1002,1003 Isr: 1003,1002 Topic: test_topic Partition: 2 Leader: 1003 Replicas: 1003,1004 Isr: 1003,1004

从结果看出,test_topic的分区数据已经由原来的3个broker,重新分布到4个broker。

三、测试结论

Ø Kafka broker 内部不同数据盘之间可以自由迁移分区数据目录。迁移完成后,重启kafka即可生效;

Ø Kafka 不同broker之前可以迁移数据,使用kafka自带的kafka-reassign-partitions.sh脚本工具实现。

四、修复客户的kafka集群故障

我们采用本文测试的方法,对该客户的Kafka集群进行broker节点内部不同磁盘间的数据迁移,对多个topic均进行了数据迁移,最终实现磁盘间的数据缓存分布均匀化。

同时,我们又对客户的kafka集群进行扩容,扩容之后采用本文描述的不同broker之间迁移分区数据方法,对多个topic均进行了数据迁移,保证新扩容节点也有缓存数据,原来的broker节点存储压力减小。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssxjp.html