kafka 自定义分区分配和迁移
2018-12-11 12:09
162 查看
分区重新分配工具还可用于选择性地将分区的副本移动到特定的代理集。当以这种方式使用时,假设用户知道重新分配计划并且不需要工具生成候选重新分配,有效地跳过 - 生成步骤并直接移动到--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-partitio 2b489 ns .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 |
相关文章推荐
- Kafka分区策略及自定义
- kafka集群扩容后的topic分区迁移
- kafka分区及副本在broker的分配
- flume+kafka实现根据消息的标识分配到不同的分区
- Kafka集群中 topic数据的分区 迁移到其他broker
- 自定义分区随机分配解决数据倾斜的问题
- Kafka分区分配策略(Partition Assignment Strategy)
- Kafka分区分配策略(Partition Assignment Strategy)
- kafka 执行topic迁移到新建的分区(partition)
- kafka分区及副本在broker的分配
- 利用Flume拦截器(interceptors)实现Kafka Sink的自定义规则多分区写入
- Kafka分区分配计算(分区器Partitions)
- (三)kafka集群扩容后的topic分区迁移
- kafka分区及副本在broker的分配
- 利用Flume拦截器(interceptors)实现Kafka Sink的自定义规则多分区写入
- kafka扩容和分区重新分配
- kafka集群扩容后的topic分区迁移
- kafka的API及自定义分区
- Kafka自定义分区规则
- 动态分区的分配策略