searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

kafka-扩容后的分区迁移

2023-03-28 03:26:28
47
0
kafka集群扩容后的topic分区迁移
kafka集群扩容后,新的broker上面不会数据进入这些节点,也就是说,这些节点是空闲的;它只有在创建新的topic、或对原有topic增加分区时才会参与工作。因此我们需要将已有的partition迁移到新的broker上面。
kafka-reassign-partitions.sh是kafka提供的用来重新分配partition和replica到broker上的工具简单实现重新分配需要三步:
  • 生成分配计划(generate)
  • 执行分配(execute)
  • 检查分配的状态(verify)
 
创建一个测试topic
bin/kafka-topics.sh --zookeeper 10.10.17.210:2181,10.10.17.210:2182,10.10.17.210:2183/kafka-test --create --topic topic1 --replication-factor 3 --partitions 5
查看topic分区情况
bin/kafka-topics.sh --zookeeper 10.10.17.210:2181,10.10.17.210:2182,10.10.17.210:2183/kafka-test --topic topic1 --describe
先看topic情况,这里有topic1 5个分区 3个副本
 
a.生成分配计划
vi topics-to-move.json
{
"topics":[{"topic":"topic1"}],
"version":1
}
 
bin/kafka-reassign-partitions.sh --zookeeper 10.10.17.210:2181,10.10.17.210:2182,10.10.17.210:2183/kafka-test --topics-to-move-json-file topics-to-move.json --broker-list "0,1,2,3,4" --generate
(注:命令后的--zookeeper 换成 --bootstrap-server 更好)
b.执行分配
vi topic-reassignment.json
把上面Proposed partition reassignment configuration 复制到上面topic-reassignment.json文件中
执行
bin/kafka-reassign-partitions.sh --zookeeper 10.10.17.210:2181,10.10.17.210:2182,10.10.17.210:2183/kafka-test --reassignment-json-file topic-reassignment.json --execute (--throttle 1024000)
throttle :限制流量单位字节
(注:命令后的--zookeeper 换成 --bootstrap-server 更好)
c.查看重新分区进度
bin/kafka-reassign-partitions.sh --zookeeper 10.10.17.210:2181,10.10.17.210:2182,10.10.17.210:2183/kafka-test --reassignment-json-file topic-reassignment.json --verify
 
completed successfully 表示已完成
is still in progress 表示进行中
d.最后看看topic分区情况
最后查看分区情况,看看是否迁移成功
0条评论
0 / 1000
肖****俊
3文章数
0粉丝数
肖****俊
3 文章 | 0 粉丝
肖****俊
3文章数
0粉丝数
肖****俊
3 文章 | 0 粉丝
原创

kafka-扩容后的分区迁移

2023-03-28 03:26:28
47
0
kafka集群扩容后的topic分区迁移
kafka集群扩容后,新的broker上面不会数据进入这些节点,也就是说,这些节点是空闲的;它只有在创建新的topic、或对原有topic增加分区时才会参与工作。因此我们需要将已有的partition迁移到新的broker上面。
kafka-reassign-partitions.sh是kafka提供的用来重新分配partition和replica到broker上的工具简单实现重新分配需要三步:
  • 生成分配计划(generate)
  • 执行分配(execute)
  • 检查分配的状态(verify)
 
创建一个测试topic
bin/kafka-topics.sh --zookeeper 10.10.17.210:2181,10.10.17.210:2182,10.10.17.210:2183/kafka-test --create --topic topic1 --replication-factor 3 --partitions 5
查看topic分区情况
bin/kafka-topics.sh --zookeeper 10.10.17.210:2181,10.10.17.210:2182,10.10.17.210:2183/kafka-test --topic topic1 --describe
先看topic情况,这里有topic1 5个分区 3个副本
 
a.生成分配计划
vi topics-to-move.json
{
"topics":[{"topic":"topic1"}],
"version":1
}
 
bin/kafka-reassign-partitions.sh --zookeeper 10.10.17.210:2181,10.10.17.210:2182,10.10.17.210:2183/kafka-test --topics-to-move-json-file topics-to-move.json --broker-list "0,1,2,3,4" --generate
(注:命令后的--zookeeper 换成 --bootstrap-server 更好)
b.执行分配
vi topic-reassignment.json
把上面Proposed partition reassignment configuration 复制到上面topic-reassignment.json文件中
执行
bin/kafka-reassign-partitions.sh --zookeeper 10.10.17.210:2181,10.10.17.210:2182,10.10.17.210:2183/kafka-test --reassignment-json-file topic-reassignment.json --execute (--throttle 1024000)
throttle :限制流量单位字节
(注:命令后的--zookeeper 换成 --bootstrap-server 更好)
c.查看重新分区进度
bin/kafka-reassign-partitions.sh --zookeeper 10.10.17.210:2181,10.10.17.210:2182,10.10.17.210:2183/kafka-test --reassignment-json-file topic-reassignment.json --verify
 
completed successfully 表示已完成
is still in progress 表示进行中
d.最后看看topic分区情况
最后查看分区情况,看看是否迁移成功
文章来自个人专栏
kafka
3 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0