最近在工作中遇到在线修改Kafka副本数的需求,经过查阅资料和实践验证,最终获得成功,在此将方法记录下来,以便日后温习。/e3base/kafka/bin/kafka-topics.sh --zookeeper hbe3base16:11001,hbe3base17:11001,hbe3base19:11001 --topic mkt_event_source_msg_3x --describe 
/e3base/kafka/bin/kafka-topics.sh --zookeeper hbe3base16:11001,hbe3base17:11001,hbe3base19:11001 -alter --partitions 5 --topic mkt_event_source_msg_3x 

第一步;查看topic信息:
示例:
/e3base/kafka/bin/kafka-topics.sh --zookeeper
hbe3base16:11001,hbe3base17:11001,hbe3base19:11001 --topic
mkt_event_source_msg_3x --describe
如图:

在kafka/bin目录下:建立increase-replication-factor.json文件:{"topic":"mkt_contact_order_3x","partition":0,"replicas":[1,2,3]},{"topic":"mkt_contact_order_3x","partition":1,"replicas":[1,2,3]},{"topic":"mkt_contact_order_3x","partition":2,"replicas":[1,2,3]},{"topic":"mkt_contact_order_3x","partition":3,"replicas":[1,2,3]},{"topic":"mkt_contact_order_3x","partition":4,"replicas":[1,2,3]}/e3base/kafka/bin/kafka-reassign-partitions.sh --zookeeper hbe3base16:11001,hbe3base17:11001,hbe3base19:11001 --reassignment-json-file increase-replication-factor.json --execute

到此,就已经成功实现Kafka在线修改副本数和分区数的需求了。
原文作者:DBA修行之路;如有侵权,请联系管理员删除。