简体   繁体   English

Kafka 代理从集群中移除且重新分配失败后降低主题复制因子

[英]Decrease topic replication factor after Kafka brokers removed from cluster and failed reassignments

The topic replication factor has increased to 45 while the number of available Kafka brokers in the cluster is 40.主题复制因子已增加到 45,而集群中可用的 Kafka 代理数量为 40。

This happened due to repeated stuck partition reassignments which were stopped.这是由于重复的分区重新分配被停止而发生的。

kafka-topics --topic top --zookeeper zoo_url --describe

shows节目

Partition: 0 Leader: 20464 Replicas: 20464,20765,1882,20870,873,898,20752,16789,17181,20743,20854,20762,894,20459,20851,21070,20757,20766,20763,890,21173,20852,895,21314,20767,883,20467,16787,21071,20750,887,20760,7067,876,20764,891,20768,4880,20769,16788,20756,886,21172,1582,871,16827 Isr: 20464,20765,1882,20870,873,898,20752,16789,17181,20743,20762,894,20459,21070,20757,20766,20763,890,21173,895,21314,20767,883,20467,16787,20750,887,20760,7067,876,20764,891,20768,4880,20769,16788,20756,886,21172,871,16827...

Some of the replicas are not part of the cluster.一些副本不是集群的一部分。

Running:跑步:

kafka-reassign-partitions --zookeeper zoo_url --topics-to-move-json-file assign.json --generate --broker-list...

fails with below error失败并出现以下错误

Partitions reassignment failed due to replication factor: 45 larger than available brokers: 21
kafka.admin.AdminOperationException: replication factor: 45 larger than available brokers: 21
    at kafka.admin.AdminUtils$.assignReplicasToBrokers(AdminUtils.scala:117)
    at kafka.admin.ReassignPartitionsCommand$$anonfun$generateAssignment$1.apply(ReassignPartitionsCommand.scala:110)
    at kafka.admin.ReassignPartitionsCommand$$anonfun$generateAssignment$1.apply(ReassignPartitionsCommand.scala:108)
    at scala.collection.immutable.Map$Map1.foreach(Map.scala:116)
    at kafka.admin.ReassignPartitionsCommand$.generateAssignment(ReassignPartitionsCommand.scala:108)
    at kafka.admin.ReassignPartitionsCommand$.generateAssignment(ReassignPartitionsCommand.scala:91)
    at kafka.admin.ReassignPartitionsCommand$.main(ReassignPartitionsCommand.scala:50)
    at kafka.admin.ReassignPartitionsCommand.main(ReassignPartitionsCommand.scala)

--broker-list argument input are ids of online brokers. --broker-list参数输入是在线经纪人的 ID。

How to force decreasing of topic replication factor?如何强制降低主题复制因子?

The only solution that worked is decreasing replication factor of one partition by running唯一有效的解决方案是通过运行降低一个分区的复制因子

kafka-reassign-partitions --zookeeper zoo_url --reassignment-json-file /tmp/assign.json --execute

when /tmp/assign.json is like below/tmp/assign.json如下所示

{ "partitions": [ { "partition": 0, "replicas": [20743,20762,894,20459,20757,895,20467,20760], "topic": "topic" } ], "version": 1 }

And then rerunning partition assignment (generation of assignment and executing it)然后重新运行分区分配(生成分配并执行它)

Kafka 0.9.0.1 is deployed as part of Cloudera. Kafka 0.9.0.1作为 Cloudera 的一部分进行部署。

You can add more than one partition in the { "partitions": [ list, but using kafka-reassign-partitions is the only built-in way to handle this.您可以在{ "partitions": [列表中添加多个分区,但使用kafka-reassign-partitions是处理此问题的唯一内置方法。 There may be external tools that can manage to programmatically generate that JSON, but they may also error when trying to lookup unknown broker ids that are currently in the assignment可能有外部工具可以设法以编程方式生成 JSON,但在尝试查找当前分配中的未知代理 ID 时,它们也可能出错

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 5个代理中kafka主题的最佳分区数,在1个集群中复制因子= 3 - Optimal number of partition for kafka topic on 5 brokers with replication factor=3 in 1 cluster 创建Kafka主题时出错: - 复制因子大于可用的代理 - Error creating Kafka topic :- replication factor larger than available brokers 使用 3 个代理集群创建新主题时,kafka 代理连接失败 - kafka broker connection failed when create new topic with a cluster of 3 brokers kafka-cluster中有多个offsets.topic.replication.factor? - Multiple offsets.topic.replication.factor in kafka-cluster? Kafka Kubernetes:活动代理的数量“0”不满足偏移主题所需的复制因子“1” - Kafka Kubernetes: Number of alive brokers '0' does not meet the required replication factor '1' for the offsets topic 错误:复制因子:比可用代理大1:当我创建Kafka主题时,它为0 - Error: Replication factor: 1 larger than available brokers: 0, when I create a Kafka topic 为什么 kafka 集群会出现错误“活动代理的数量 '0' 不符合所需的复制因子”? - Why kafka cluster did error "Number of alive brokers '0' does not meet the required replication factor"? 修改Kafka主题复制因子后会发生什么? - What happens after modifying Kafka topic replication factor? 如何将单个Kafka服务器中使用的Kafka主题迁移到具有复制因子2的Kafka集群? - How to migrate Kafka topic used in a singe Kafka server to Kafka cluster with replication-factor 2? 如何从 Java 代码中获取 Kafka Topic 的复制因子 - How to get Replication Factor of Kafka Topic from Java code
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM