【kafka-开发】修改topic分区及副本数

一、查看及修改topic分区

  1. 查看已有topic信息并修改分区
./bin/kafka-topics.sh --describe --zookeeper hdc-data1,hdc-data2,hdc-data3:2181 --topic prod_log_simul
./bin/kafka-topics.sh --alter --zookeeper hdc-data1,hdc-data2,hdc-data3:2181 --topic prod_log_simul --partitions 3

二、修改topic副本数

  1. 编写分配脚本并执行分配计划
vi ~/kafka_add_replicas.json

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

./bin/kafka-reassign-partitions.sh --zookeeper hdc-data1,hdc-data2,hdc-data3:2181 --topics-to-move-json-file ~/kafka_add_replicas.json --broker-list "0,1,2" --generate
  1. 根据上一步生成的分配计划复制并配置json文件topic-reassignment.json,进行topic的重新分配。
vi ~/topic-reassignment.json

去掉log_dirs字段并修改replicas字段([0,1,2]分别为broker_id),表示副本存储的broker位置,如下:

{"version":1,"partitions":[{"topic":"prod_log_simul","partition":2,"replicas":[0,1,2]},{"topic":"prod_log_simul","partition":1,"replicas":[0,1,2]},{"topic":"prod_log_simul","partition":0,"replicas":[0,1,2]}]}

重新分配及查看分配进度

./bin/kafka-reassign-partitions.sh --zookeeper hdc-data1,hdc-data2,hdc-data3:2181 --reassignment-json-file ~/topic-reassignment.json --execute
# 查看分配进度
./bin/kafka-reassign-partitions.sh --zookeeper hdc-data1,hdc-data2,hdc-data3:2181 --reassignment-json-file ~/topic-reassignment.json --verify


到此修改分区及副本数完成。

你可能感兴趣的:(【kafka-开发】修改topic分区及副本数)