Kafka|增加多主题的复制因子

vh0rcniy  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(370)

我有一个3代理kafka集群,其中有许多关于复制因子1的主题。我知道我可以通过将带有分区重新分配配置的json文件传递给 kafka-reassign-partitions.sh .
我的困惑是,我应该传递一个包含所有主题的分区重新分配细节的json文件,还是应该为每个主题创建一个json并分别运行它们?

xzabzqsa

xzabzqsa1#

这是成本/风险的平衡。
重新分配所有主题:
优点:易于运行,单命令。要监视的单个任务
缺点:控制力不强。根据集群的不同,进程可以复制大量数据。虽然可以设置重新分配配额,但很难精确控制重新分配使用的带宽。因此,这可能会影响使用集群的其他服务
在“小”块中重新分配主题:
优点:这样可以更好地控制大规模的重新分配可能带来的影响
缺点:运营商必须拆分重新分配。运行并监视每个块
根据集群的大小和使用情况,您应该能够确定哪种方法最适合您。在繁忙的集群中,我建议设置重新分配配额,并且只按块重新分配主题,否则重新分配将尝试以尽可能快的速度执行,这会对集群产生很大影响。如果您的集群大部分是新的/未使用的,那么您可以同时重新分配所有主题。

5fjcxozz

5fjcxozz2#

您可以创建多个 .json 文件或使用包含多个主题的重新分配详细信息的单个文件:

{
  "version":1,
  "partitions":[
      {"topic":"topic_1","partition":0,"replicas":[0,1]},
      {"topic":"topic_1","partition":1,"replicas":[1,0]}, 
      {"topic":"topic_2","partition":0,"replicas":[0,1]},
      {"topic":"topic_2","partition":1,"replicas":[1,0]}
  ]
}

然后跑

./bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file increase-replication-factor.json --execute

您的主题应如下所示:

./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic topic_1
Topic:demo-topic        PartitionCount:2        ReplicationFactor:2     Configs:
        Topic: topic_1       Partition: 0    Leader: 0       Replicas: 0,1     Isr: 0,1
        Topic: topic_1       Partition: 1    Leader: 1       Replicas: 1,0     Isr: 1,0

./bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic topic_2
Topic:demo-topic        PartitionCount:2        ReplicationFactor:2     Configs:
        Topic: topic_2       Partition: 0    Leader: 0       Replicas: 0,1     Isr: 0,1
        Topic: topic_2       Partition: 1    Leader: 1       Replicas: 1,0     Isr: 1,0

最后,可以将--verify选项与工具一起使用,以检查分区重新分配的状态。注意,expand-cluster-reassignment.json(与--execute选项一起使用)应该与--verify选项一起使用

> bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file increase-replication-factor.json  --verify
Status of partition reassignment:
Reassignment of partition [topic_1,0] completed successfully
Reassignment of partition [topic_1,1] is in progress
Reassignment of partition [topic_2,0] completed successfully
Reassignment of partition [topic_2,1] completed successfully

相关问题