本文章记录使用kafka-reassign-partitions.sh脚本来重新分配节点分区。kafka节点扩容后,已经存在的旧的topic的分区是不会伴随节点的增加而变动的,所以需要我们手动的去调整分区。下面提供了一套脚本,可以实现自动化重分区,欢迎大家斧正:

脚本目录和文件目录要注意,这是我的集群的目录,大家可以根据自己的目录进行调整

主脚本:
需要传两个参数

$1:zookeeper链接地址

$2:brokerid的列表

atuoReassign.sh:

#!/bin/bashzkServer=$1
brokerIdList=$2
if [ -z "$zkServer" ]
thenecho "zkServer can not be empty"exit 1
elseecho "zkServer:"$zkServer
fi
if [ -z "$brokerIdList" ]
thenecho "brokerIdList can not be empty"exit 2
elseecho "brokerIdList:" $brokerIdList
fi
echo "###########################start generate##############################"
sh /var/lib/kafka/autoAssign.sh $zkServer
echo "###########################end generate##############################"
echo "###########################start execute##############################"
sh /var/lib/kafka/autoRebalance.sh $zkServer $brokerIdList
echo "###########################end execute##############################"
echo "###########################delete generate json##############################"
rm -rf  /opt/kafka/bin/topicMove.json
rm -rf  /opt/kafka/bin/ressgintopic.json
echo "###########################end ressgin##############################"

autoAssign.sh:

#!/bin/bashzkServer=$1
topicArr=`sh /opt/kafka/bin/kafka-topics.sh  --zookeeper $zkServer --list`
topictext=''
symbol='"'
for topic in ${topicArr[@]}
dotopictext=$topictext','{$symbol'topic'$symbol:$symbol$topic$symbol}
done
assigntext='{"topics":['${topictext:1}'],"version":1}'
echo $assigntext >/opt/kafka/bin/topicMove.json

autoRebalance.sh:

#!/bin/bashsource /etc/profilezkServer=$1
brokerIdList=$2
content=`sh /opt/kafka/bin/kafka-reassign-partitions.sh --zookeeper $zkServer --topics-to-move-json-file /opt/kafka/bin/topicMove.json --broker-list $brokerIdList --generate`
content=`echo $content | awk -F 'Proposed partition reassignment configuration' '{print $2}'`
echo $content
echo $content > /opt/kafka/bin/ressgintopic.json
sh /opt/kafka/bin/kafka-reassign-partitions.sh --zookeeper $zkServer$clusterName --reassignment-json-file /opt/kafka/bin/ressgintopic.json --execute

kafka扩容数据自动重分配脚本相关推荐

  1. GNSS数据自动下载脚本(使用CDDIS账号)

    GNSS数据自动下载脚本(使用CDDIS账号) 文章目录 GNSS数据自动下载脚本(使用CDDIS账号) 前言 1.注册EARTHDATA账号 2.使用前的准备工作 3.脚本的使用 总结 Q& ...

  2. 魔兽mangos用户数据自动备份脚本

    魔兽mangos用户数据自动备份脚本 #!/bin/bash USER=<USERNAME> PASS=<PASSWORD> DBNAME=mangos RNAME=realm ...

  3. linux中自动挂载脚本,LIUNX一键自动挂载脚本,宝塔磁盘LIUNX一键分区磁盘 | 帮助信息-动天数据...

    LIUNX一键自动挂载脚本,宝塔磁盘LIUNX一键分区磁盘 作者:dthost | 时间:2019-01-25 | 9,225 次阅读 用惯WIN系统的朋友们,估计上手LIUNX服务器,第一件事很多人 ...

  4. python脚本实现GNSS数据自动下载

    python脚本实现GNSS数据自动下载 本文代码思路参考了博文[https://blog.csdn.net/weixin_39672353/article/details/1098525] 在此基础 ...

  5. 易语言游戏基址内存数据CEAA自动汇编脚本注入及CALL的调用

    对于汇编基础稍弱的同学来说,CEEAA自动汇编是一个部错的选择,以CE为工具,以脚本注入为主,采用CEAA自动汇编,利于易语言调用自动 汇编脚本注入游戏,实战了各种汇编技巧,易语言注入调用汇编的各种方 ...

  6. 解决白盒、mock、性能、自动化测试脚本中的数据自动生成问题——Spock-Genesis

    文章目录 前言 一.Spock-Genesis是什么? 二.使用步骤 1.添加Spock-Genesis依赖 2.示例 总结 前言 程序的基本功能就是通过输入一组数据,得出我们期望的输出.我们测试的目 ...

  7. oracle备份数据脚本,oracle数据库自动备份脚本

    ::通过exp命令导出远程机器(192.168.2.1)上指定服务(orcl)指定用户(pmis)及密码(pmis)的数据 ::运行该脚本的机器必须安装oracle @echo off @echo [ ...

  8. linux mangos创建账号,魔兽mangos系统用户数据自动备份Linux脚本

    魔兽mangos系统用户数据自动备份Linux脚本 来源: 作者: 点击: #!/bin/bash USER= PASS= DBNAME=mangos RNAME=realmd clear echo ...

  9. 【kafka实战】分区重分配可能出现的问题和排查问题思路(生产环境实战,附视频)

    超强!!! Kafka高质量专栏学习大全,点我获取!!! 文章目录 前提 所有异常情况 1. TargetBroker若不在线,迁移脚本执行会失败 情景演示 2. TargetBroker在开始迁移过 ...

最新文章

  1. php中转,使用 PHP Curl 做数据中转
  2. 用分布式缓存提升ASP.NET Core性能
  3. 动态规划训练6 [统计单词个数]
  4. 模拟Struts2实现
  5. mysql 测试数据的脚本_Mysql脚本 生成测试数据
  6. JEECG Online开发教程专题视频-张代浩-专题视频课程
  7. ThinkPHP3.2 下载、导入、导出功能的设计与实现
  8. 【OpenCV】OpenCV实战从入门到精通之 -- 常用数据结构和函数(Point、Scalar、Size、Rect、cvtColor)
  9. yocto rootfs 支持pam
  10. 瑞士联邦议会批准关于加密货币监管的指示
  11. Softether软件原理分析
  12. 怎样在计算机桌面上安装驱动器,如何安装电脑设备驱动程序?
  13. 基于最大似然估计与卡尔曼滤波的室内目标跟踪
  14. centos安装NVI驱动
  15. centos添加硬盘
  16. SEO培训联盟排名掉的原因:宋星博客?
  17. 【软件建模与UML】(持续更新)
  18. 那些学长学姐考研期间,最后悔的事
  19. docker 的最基础知识命令,可以当作笔记来看,学习还是要看相关的课程视频,自此整理了一套docker基础的文档笔记希望对你有用
  20. 【爬虫】Heritrix 3.2安装和运行实例

热门文章

  1. java后台实现支付宝支付接口、支付宝订单查询接口 前端为APP
  2. PMP考前冲刺题2022(正题)含解析
  3. 数据分析-常用的数据分析框架-06
  4. 利用c语言中printf输出图形
  5. jQuery设置内容以及属性
  6. C - AtoI: Convert a string of digits into its numeric equivalent
  7. 手机遥控电脑 chrome远程桌面
  8. 贝叶斯统计 韦来生 课后题答案 第三章
  9. 第一次做项目经理总结_干货:项目结束后,哪些经验教训要总结?
  10. CSS鼠标滑过div上移效果