当前位置: 首页 > news >正文

kafka增加磁盘或者分区,topic重分区

场景:kafka配置文件log.dirs增加了几个目录,但是新目录没有分区数据写入,所以打算进行重分区一下。

1.生成迁移计划

进入kafka/bin目录

新建 topic-reassign.json,把要重分区的topic按下面格式写。

{
          "topics": [{
                       "topic": "VOLTE_GM"
                    },{
                       "topic": "VOLTE_GM_MEDIA"
                    },{
                       "topic": "VOLTE_MW"
                    },{
                       "topic": "VOLTE_RX"
                    },{
                       "topic": "VOLTE_SH"
                    },{
                       "topic": "VOLTE_SV"
                    }],
          "version": 1
}

 执行命令

./kafka-reassign-partitions.sh --zookeeper kafka001:2181/kafka --generate --topics-to-move-json-file topic-reassign.json --broker-list 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39

broker-list 是kafka配置文件中的 broker.id

输出:

Current partition replica assignment:当前分区策略,建议保存,回退的时候会用到

Proposed partition reassignment configuration:建议分区策略

Current partition replica assignment
{"version":1,"partitions":[{"topic":"VOLTE_GM","partition":1,"replicas":[35,18],"log_dirs":["any","any"]},{"topic":"VOLTE_GM_MEDIA","partition":2,"replicas":[0,19],"log_dirs":["any","any"]},{"topic":"VOLTE_RX","partition":0,"replicas":[33,2],"log_dirs":["any","any"]},{"topic":"VOLTE_SV","partition":1,"replicas":[10,2],"log_dirs":["any","any"]},{"topic":"VOLTE_SH","partition":0,"replicas":[14,13],"log_dirs":["any","any"]},{"topic":"VOLTE_GM","partition":2,"replicas":[36,19],"log_dirs":["any","any"]},{"topic":"VOLTE_SV","partition":2,"replicas":[11,3],"log_dirs":["any","any"]},{"topic":"VOLTE_GM_MEDIA","partition":1,"replicas":[39,18],"log_dirs":["any","any"]},{"topic":"VOLTE_SH","partition":2,"replicas":[16,15],"log_dirs":["any","any"]},{"topic":"VOLTE_SH","partition":1,"replicas":[15,14],"log_dirs":["any","any"]},{"topic":"VOLTE_MW","partition":1,"replicas":[38,23],"log_dirs":["any","any"]},{"topic":"VOLTE_MW","partition":2,"replicas":[39,24],"log_dirs":["any","any"]},{"topic":"VOLTE_GM_MEDIA","partition":0,"replicas":[38,17],"log_dirs":["any","any"]},{"topic":"VOLTE_RX","partition":2,"replicas":[35,4],"log_dirs":["any","any"]},{"topic":"VOLTE_MW","partition":0,"replicas":[37,22],"log_dirs":["any","any"]},{"topic":"VOLTE_GM","partition":0,"replicas":[34,17],"log_dirs":["any","any"]},{"topic":"VOLTE_RX","partition":1,"replicas":[34,3],"log_dirs":["any","any"]},{"topic":"VOLTE_SV","partition":0,"replicas":[9,1],"log_dirs":["any","any"]}]}

Proposed partition reassignment configuration
{"version":1,"partitions":[{"topic":"VOLTE_RX","partition":0,"replicas":[28,21],"log_dirs":["any","any"]},{"topic":"VOLTE_SH","partition":0,"replicas":[1,25],"log_dirs":["any","any"]},{"topic":"VOLTE_GM_MEDIA","partition":0,"replicas":[36,19],"log_dirs":["any","any"]},{"topic":"VOLTE_SH","partition":2,"replicas":[3,27],"log_dirs":["any","any"]},{"topic":"VOLTE_MW","partition":0,"replicas":[15,13],"log_dirs":["any","any"]},{"topic":"VOLTE_RX","partition":2,"replicas":[30,23],"log_dirs":["any","any"]},{"topic":"VOLTE_GM","partition":1,"replicas":[12,32],"log_dirs":["any","any"]},{"topic":"VOLTE_SV","partition":0,"replicas":[35,25],"log_dirs":["any","any"]},{"topic":"VOLTE_MW","partition":2,"replicas":[17,15],"log_dirs":["any","any"]},{"topic":"VOLTE_GM_MEDIA","partition":2,"replicas":[38,21],"log_dirs":["any","any"]},{"topic":"VOLTE_SV","partition":2,"replicas":[37,27],"log_dirs":["any","any"]},{"topic":"VOLTE_SH","partition":1,"replicas":[2,26],"log_dirs":["any","any"]},{"topic":"VOLTE_RX","partition":1,"replicas":[29,22],"log_dirs":["any","any"]},{"topic":"VOLTE_GM","partition":0,"replicas":[11,31],"log_dirs":["any","any"]},{"topic":"VOLTE_MW","partition":1,"replicas":[16,14],"log_dirs":["any","any"]},{"topic":"VOLTE_GM_MEDIA","partition":1,"replicas":[37,20],"log_dirs":["any","any"]},{"topic":"VOLTE_SV","partition":1,"replicas":[36,26],"log_dirs":["any","any"]},{"topic":"VOLTE_GM","partition":2,"replicas":[13,33],"log_dirs":["any","any"]}]}

 将标红的json保存到topic-todo.json

2.执行迁移命令

./kafka-reassign-partitions.sh --zookeeper kafka001:2181/kafka --reassignment-json-file topic-todo.json --execute --throttle 1048576000

 throttle带宽,单位是B,上面表示100M/s带宽。

3.验证迁移结果

./kafka-reassign-partitions.sh --zookeeper kafka001:2181/kafka --reassignment-json-file topic-todo.json --verify

 

 分区多,数据量大的话,用时多一些,半个小时一个小时也是可能的。

http://www.lryc.cn/news/166995.html

相关文章:

  • SpringMVC系列(五)之JSR303和拦截器
  • LCP 01.猜数字
  • 智能小车开发
  • RDMA性能测试工具集preftest_README
  • 墨天轮专访星环科技刘熙:“向量热”背后的冷思考,Hippo如何打造“先发”优势?
  • 逆向-beginners之非递归
  • Spring for Apache Kafka概述和简单入门
  • 基于SSM+Vue的医院医患管理系统
  • 再次理解Android账号管理体系
  • 如何在Blender中压缩/减小GLTF模型的大小
  • IntelliJ IDEA使用_Plugin插件推荐
  • Ajax fetch navigator.sendBeacon 三个的区别
  • map-reduce执行过程
  • 技术人员怎样提升对业务的理解
  • 【分布式】分布式事务:2PC
  • 回归与聚类算法系列④:岭回归
  • idea配置git(gitee)并提交(commit)推送(push)
  • (19)Task异步:任务创建,返回值,异常捕捉,任务取消,临时变量
  • 设备树的理解与运用
  • 【AIGC】提示词 Prompt 分享
  • 【Axure视频教程】取整函数
  • MySQL清空表
  • 使用IDEA创建Vue3通过Vite实现工程化
  • GitLab使用的最简便方式
  • MySQL数据库20G数据迁移至其他服务器的MySQL库或者云MySQL库
  • build.gradle配置文件详解
  • 2024拼多多校招面试真题汇总及其解答(二)
  • 自动化运维工具Ansible教程(一)【入门篇】
  • 计算机毕业设计 微信小程序 uniapp+vue大学生兼职平台
  • JavaScript框架:构建交互性、现代化Web应用的利器