kafka 自定义分区分配和迁移

自定义分区分配和迁移

分区重新分配工具还可用于选择性地将分区的副本移动到特定的代理集。当以这种方式使用时,假设用户知道重新分配计划并且不需要工具生成候选重新​​分配,有效地跳过 - 生成步骤并直接移动到--execute步骤

例如,以下示例将主题foo1的分区0移动到代理5,6,将主题foo2的分区1移动到代理2,3:

第一步是在json文件中手工制作自定义重新分配计划:

1

2

> cat custom-reassignment.json

{"version":1,"partitions":[{"topic":"foo1","partition":0,"replicas":[5,6]},{"topic":"foo2","partition":1,"replicas":[2,3]}]}

然后,使用带有--execute选项的json文件来启动重新分配过程:

1

2

3

4

6

7

8

9

10

11

12

13

14

> bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file custom-reassignment.json --execute

Current partition replica assignment

 

{"version":1,

"partitions":[{"topic":"foo1","partition":0,"replicas":[1,2]},

              {"topic":"foo2","partition":1,"replicas":[3,4]}]

}

 

Save this to use as the --reassignment-json-file option during rollback

Successfully started reassignment of partitions

{"version":1,

"partitions":[{"topic":"foo1","partition":0,"replicas":[5,6]},

              {"topic":"foo2","partition":1,"replicas":[2,3]}]

}

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

1

2

3

4

> bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file custom-reassignment.json --verify

Status of partition reassignment:

Reassignment of partition [foo1,0] completed successfully

Reassignment of partition [foo2,1] completed successfully

 

增加复制因子

增加现有分区的复制因子很容易。只需在自定义重新分配json文件中指定额外副本,并将其与--execute选项一起使用,以增加指定分区的复制因子。

例如,以下示例将主题foo的分区0的复制因子从1增加到3.在增加复制因子之前,分区的唯一副本存在于代理5上。作为增加复制因子的一部分,我们将添加更多副本经纪人6和7。

第一步是在json文件中手工制作自定义重新分配计划:

1

2

3

> cat increase-replication-factor.json

{"version":1,

"partitions":[{"topic":"foo","partition":0,"replicas":[5,6,7]}]}

然后,使用带有--execute选项的json文件来启动重新分配过程:

1

2

3

4

6

7

8

9

10

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

Current partition replica assignment

 

{"version":1,

"partitions":[{"topic":"foo","partition":0,"replicas":[5]}]}

 

Save this to use as the --reassignment-json-file option during rollback

Successfully started reassignment of partitions

{"version":1,

"partitions":[{"topic":"foo","partition":0,"replicas":[5,6,7]}]}

--verify选项可与该工具一起使用,以检查分区重新分配的状态。请注意,相同的increase-replication-factor.json(与--execute选项一起使用)应与--verify选项一起使用:

1

2

3

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

Status of partition reassignment:

Reassignment of partition [foo,0] completed successfully

您还可以使用kafka-topics工具验证复制因子的增加:

1

2

3

> bin/kafka-topics.sh --zookeeper localhost:2181 --topic foo --describe

Topic:foo   PartitionCount:1    ReplicationFactor:3 Configs:

  Topic: foo    Partition: 0    Leader: 5   Replicas: 5,6,7 Isr: 5,6,7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值