Łuk*_*ski 108
要增加给定主题的副本数量,您必须:
例如,您可以创建increase-replication-factor.json并将此内容放入其中:
{"version":1,
"partitions":[
{"topic":"signals","partition":0,"replicas":[0,1,2]},
{"topic":"signals","partition":1,"replicas":[0,1,2]},
{"topic":"signals","partition":2,"replicas":[0,1,2]}
]}
Run Code Online (Sandbox Code Playgroud)
[或kafka-reassign-partitions.sh - 取决于kafka包]
例如:
$ kafka-reassign-partitions --zookeeper localhost:2181 --reassignment-json-file increase-replication-factor.json --execute
Run Code Online (Sandbox Code Playgroud)
[或kafka-topics.sh - 取决于kafka包]
$ kafka-topics --zookeeper localhost:2181 --topic signals --describe
Topic:signals PartitionCount:3 ReplicationFactor:3 Configs:retention.ms=1000000000
Topic: signals Partition: 0 Leader: 2 Replicas: 0,1,2 Isr: 2,0,1
Topic: signals Partition: 1 Leader: 2 Replicas: 0,1,2 Isr: 2,0,1
Topic: signals Partition: 2 Leader: 2 Replicas: 0,1,2 Isr: 2,0,1
Run Code Online (Sandbox Code Playgroud)
另请参阅:官方文档中描述如何增加复制因子的部分.
Dir*_*irk 26
您还可以使用kafkactl来实现此目的:
\n# first run with --validate-only to see what kafkactl will do\nkafkactl alter topic my-topic --replication-factor 2 --validate-only\n\n# then do the replica reassignment\nkafkactl alter topic my-topic --replication-factor 2\nRun Code Online (Sandbox Code Playgroud)\n请注意,kafkactl 为此使用的 Kafka API 仅适用于 Kafka \xe2\x89\xa5 2.4.0。
\n免责声明:我是该项目的贡献者
\nArt*_*ski 12
编辑:我被证明是错的 - 请检查lukdumi的优秀答案.
我暂时离开原来的完整答案.
我认为你不能.通常它会是这样的
./kafka-topics.sh --zookeeper localhost:2181 --alter --topic test2 --rerelication-factor 3
但它说
选项"[replication-factor]"不能与选项"[alter]"一起使用
有趣的是,您可以动态更改分区数(在运行时完成时通常会产生极大的破坏性操作),但无法增加复制因子,这应该是透明的.但请记住,它是0.10,而不是10.0 ...请在此处查看增强请求https://issues.apache.org/jira/browse/KAFKA-1543
?ukasz Dumiszewski 的回答是正确的,但手动生成该文件有点困难。幸运的是,有一些简单的方法可以实现@?ukasz Dumiszewski 所说的。
如果您使用的是kafka-manager tool,则可以从版本2.0.0.2中更改Generate Partition Assignment主题视图中部分中的复制因子。然后您应该单击Reassign Partitions应用生成的分区分配(如果您选择不同的复制因子,您将收到警告,但您可以在Force Reassign之后单击)。
如果你安装了 ruby,你可以使用这个帮助脚本
| 归档时间: |
|
| 查看次数: |
45356 次 |
| 最近记录: |