当前位置:   article > 正文

kafka如何在运行中增加分区并重新分配副本_kafka运行过程中增加分区 windows版本

kafka运行过程中增加分区 windows版本

1.扩容
在新的物理机上安装kafka程序,修改config/server.properties文件里的broker.id必须在集群中唯一,修改其他必要的配置项,其中zookeeper.connect配置项,写上kafka集群现在使用的zookeeper集群的地址。
然后启动kafka就可以加入到集群中了。
但是新加入的机器只能对新产生的topic起作用,对已有的topic在没有做处理前,是不会承担任何任务的,所以不会分担集群的压力。

2.重新分区Partition
假设有一个名为test的topic,只有1个partition,现在由于存储空间不足,需要重新分区。

3.修改topic的partitions

./bin/kafka-topics.sh --zookeeper 10.0.210.152:2181 --alter --topic test --partitions 6

现在topic有6个partition,但是数据还没有迁移过去

4.迁移数据
使用kafka提供的工具kafka-reassign-partitions.sh来迁移数据。迁移数据需要分三步做

第一步:生成迁移计划
先手动生成一个topic.json,内容如下。这里topic可以是一个列表

  1. {
  2. "topics": [
  3. {"topic": "test"}
  4. ],
  5. "version": 1
  6. }

执行如下语句,

./bin/kafka-reassign-partitions.sh --zookeeper 10.0.210.152:2181 --topics-to-move-json-file topic.json --broker-list "0,1,2,3,4" --generate

将topic.json里的topic迁移到broker-list列表里列的broker上,会得到一个执行计划

  1. Current partition replica assignment
  2. {"version":1,
  3. "partitions":[....]
  4. }
  5. Proposed partition reassignment configuration
  6. {"version":1,
  7. "partitions":[.....]
  8. }

新建一个文件reassignment.json,保存上边这些信息。其中Current partition replica assignment指当前的分区情况,Proposed partition reassignment configuration是计划的分区情况

第二步:迁移
执行如下命令 

 

./bin/kafka-reassign-partitions.sh --zookeeper 10.0.210.152:2181 --reassignment-json-file reassignment.json --execute

第三步:验证

./bin/kafka-reassign-partitions.sh --zookeeper 10.0.210.152:2181 --reassignment-json-file reassignment.json --verify

第四步:随机查看topics是否迁移

./bin/kafka-topics.sh --zookeeper 10.0.210.152:2181 --describe --topic test

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/643217
推荐阅读
相关标签
  

闽ICP备14008679号