Kafka集群机器如下
机器名 | ip地址 | broker.id |
---|---|---|
computer9 | 10.113.176.130 | 14 |
computer10 | 10.113.176.131 | 12 |
computer11 | 10.113.176.132 | 13 |
computer12 | 10.113.176.133 | 430 |
computer13 | 10.113.176.134 | 431 |
computer14 | 10.113.176.135 | 432 |
查看 topic 列表
/opt/cloudera/parcels/KAFKA-3.0.0-1.3.0.0.p0.40/bin/kafka-topics --list --zookeeper ip1:2181,ip2:2181,ip3:2181/kafka
查看某个topic详情
/opt/cloudera/parcels/KAFKA-3.0.0-1.3.0.0.p0.40/bin/kafka-topics --describe --zookeeper ip1:2181,ip2:2181,ip3:2181/kafka --topic bigdata
输出:
Topic:bigdata PartitionCount:1 ReplicationFactor:1 Configs:
Topic: bigdata Partition: 0 Leader: 431 Replicas: 431 Isr: 431
可以看到如上bigdata的topic副本数为1
扩容副本
kafka-reassign-partitions 执行时,依赖是一个json文件
创建执行的json文件
vim /home/bigdata.json
{
"version": 1,
"partitions": [
{
"topic": "bigdata",
"partition": 0,
"replicas": [
431,
432,
430
]
}
]
}
注意:这个json文件和上面查看的 topic 详情,是有关联的!否则会导致执行失败
正式执行脚本
/opt/cloudera/parcels/KAFKA-3.0.0-1.3.0.0.p0.40/bin/kafka-reassign-partitions --zookeeper ip1:2181,ip2:2181,ip3:2181/kafka --reassignment-json-file /home/bigdata.json --execute
参数:
–reassignment-json-file 带有分区的JSON文件
–execute 按规定启动,重新分配JSON文件选择权。
执行输出:
Current partition replica assignment
{"version":1,"partitions":[{"topic":"bigdata","partition":0,"replicas":[431]}]}
Save this to use as the --reassignment-json-file option during rollback
Successfully started reassignment of partitions.
出现Successfully表示成功!
再次查看topic为bigdata 的partition详情
/opt/cloudera/parcels/KAFKA-3.0.0-1.3.0.0.p0.40/bin/kafka-topics --describe --zookeeper ip1:2181,ip2:2181,ip3:2181/kafka --topic bigdata
输出:
Topic:bigdata PartitionCount:1 ReplicationFactor:3 Configs:
Topic: bigdata Partition: 0 Leader: 431 Replicas: 431,432,430 Isr: 431,430,432
可以发现,副本已经改为3了!