【生产】kafka 分区迁移步骤

时间:2022-12-08 19:59:27

注意事项

迁移的时候找个流量小的时候进行迁移

  1. 先确认需要迁移的topic
  2. 登录任意一台kafka 实例所在服务器,并进入到kafka的home目录

3. 查看topic分区情况

bin/kafka-topics.sh --zookeeper ${zkAddr} --topic ${topicName} --describe

说明:

${zkAddr}:zk地址,可以看kafka的配置文件获取

${topicName}:要查看的topic名称

4. 生成分配计划

生成topics-to-move.json文件

vi topics-to-move.json

{ 
"topics":[{"topic":"${topicName}"}],
"version":1
}

说明:

${topicName}:要迁移的topic名称

version:固定值 1

5.执行分配计划

bin/kafka-reassign-partitions.sh --zookeeper ${zkAddr} --topics-to-move-json-file topics-to-move.json --broker-list "${brokerList}" --generate

说明:

${brokerList}:扩容后的所有机器的broker.id

把上面Proposed partition reassignment configuration 下的计划json复制到topic-reassignment.json文件中

6. 执行分配

bin/kafka-reassign-partitions.sh --zookeeper ${zkAddr} --reassignment-json-file topic-reassignment.json --execute (--throttle 1024000)

说明 :--throttle 为可选值,限制分区迁移速度,单位byte

7. 查看重新分区进度

bin/kafka-reassign-partitions.sh --zookeeper ${zkAddr} --reassignment-json-file topic-reassignment.json --verify

completed successfully 表示已完成

is still in progress 表示进行中

8.再次查看topic分区情况

bin/kafka-topics.sh --zookeeper ${zkAddr} --topic ${topicName} –describe

【生产】kafka 分区迁移步骤