kafka 在线修改topic分区的副本数
1、先准备一个json文件
partitions-topic.json
{
"version":1,
"partitions": [{
"topic": "ad-bd_poi-cache",
"partition": 0,
"replicas": [0, 2]
},{
"topic": "ad-bd_poi-cache",
"partition": 1,
"replicas": [0, 2]
},{
"topic": "ad-bd_poi-canal",
"partition": 0,
"replicas": [0, 2]
}]
}
topic:指定要调整的topic。
replicas:副本数组,数组里的数字需要和 kafka每个节点的 broker.id 保持一致。
partition: 指定的topic的要调整的分区。
一个文件里可以指定修改多个topic
文件编辑完成后上传到相应的服务器目录里。
2、开始执行准备好的json文件
bin/kafka-reassign-partitions.sh --zookeeper lzmhdev10:2181 \
--reassignment-json-file partitions-topic.json \
--execute
例子:
3、校验执行结果情况
查看json的执行情况:
bin/kafka-reassign-partitions.sh --zookeeper lzmhdev10:2181 \
--reassignment-json-file partitions-topic.json \
--verify
例子:
获取直接查询相应的topic详情:
bin/kafka-topics.sh --describe --zookeeper lzmhdev10:2181 \
--topic ad-bd_poi-cache
4、建议
- 在今后凡是新的topic创建,不建议在程序上直接创建,而是手动创建,有问题可以先进行调整。