目录

前言

此文档记录了kafka中topic分区副本的详细步骤,以
192.168.70.212
192.168.70.213
192.168.70.214
三台机器为例,所有代码均可复制我的修改端口号和 topic即可创建一个多个topic的分区

注意

所有操作均在kafka目录下无需进入bin目录
脚本&pdf文档下载
提取码:pm39

1.创建topic,进入kafka目录下:

 ./bin/kafka-topics.sh --create --zookeeper 192.168.70.212:2181,192.168.70.213:2181,192.168.70.214:2181 --replication-factor 3 --partitions 3 --topic test01

这里的 test01 可以自定义成自己要定义的topic

2.查看所有我们创建的的topic

 ./bin/kafka-topics.sh --zookeeper 192.168.70.212:2181,192.168.70.213:2181,192.168.70.214:2181 --list

在这里插入图片描述

3.kafka修改topic的分区数(脚本批量)

脚本&pdf文档下载
提取码:pm39

 ./bin/kafka-topics.sh --zookeeper
192.168.70.212:2181,192.168.70.213:2181,192.168.70.214:2181 -alter --partitions 3 --topic test01

由于我们这里topic太多一个个运行太麻烦而且容易漏,所以写一个脚本
注意:partitions 3 中数字代表分区副本数量,只能如果修改只能增加不能减少,所以建议3就可以了!

在这里插入图片描述
直接放到kafka目录下,没有执行权限,记得增加权限:

chmod +x update-topics.sh

执行脚本

 ./update-topics.sh

运行成功如下显示:
在这里插入图片描述

4.kafka数据再均衡

4.1生成需要执行分区重分配的主题列表 json 文件
vim sjzn_spark_binlog_order_topic.json

在这里插入图片描述
将所有需要分区的topic添加进来!!!

4.2生成主题的分配方案
 ./bin/kafka-reassign-partitions.sh --zookeeper
192.168.70.212:2181,192.168.70.213:2181,192.168.70.214:2181 --topics-to-move-json-file sjzn_spark_binlog_order_topic.json --broker-list "0,1,2" --generate Current partition replica assignment

4.3将分配方案保存到一个 json 文件中
vim expand-cluster-reassignment.json

在这里插入图片描述

4.4执行分配
./bin/kafka-reassign-partitions.sh --zookeeper
192.168.70.212:2181,192.168.70.213:2181,192.168.70.214:2181 --reassignment-json-file expand-cluster-reassignment.json --execute Current partition replica assignment

在这里插入图片描述
执行成功!

5.查看执行再分区的状态

./bin/kafka-reassign-partitions.sh --zookeeper
192.168.70.212:2181,192.168.70.213:2181,192.168.70.214:2181 --reassignment-json-file expand-cluster-reassignment.json --verify

在这里插入图片描述

6.可以单独查询一下topic的分区状态

 ./bin/kafka-topics.sh --describe --zookeeper 192.168.70.212:2181,192.168.70.213:2181,192.168.70.214:2181 --topic dwd_all_metric

在这里插入图片描述
成功,完毕!!!

在这里插入图片描述
如果对你有帮助给个赞吧!👍谢谢支持!
有错误希望大家可以评论!
本人小白,认真跟大佬学习及时改正!

2021.4.14
李欣峰

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐