kafka扩容数据自动重分配脚本

2023-10-30

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

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

主脚本:
需要传两个参数

$1:zookeeper链接地址

$2:brokerid的列表

atuoReassign.sh:

#!/bin/bash

zkServer=$1
brokerIdList=$2
if [ -z "$zkServer" ]
then
  echo "zkServer can not be empty"
  exit 1
else
  echo "zkServer:"$zkServer
fi
if [ -z "$brokerIdList" ]
then
  echo "brokerIdList can not be empty"
  exit 2
else
  echo "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/bash

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

autoRebalance.sh:

#!/bin/bash

source /etc/profile

zkServer=$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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

kafka扩容数据自动重分配脚本 的相关文章

  • Java 中类似 HashMap 的可排序数据结构?

    Java 中是否有某种类似于 HashMap 的数据结构 可以按键或值排序 在 PHP 中 您可以拥有可排序的关联数组 Java中有这样的东西吗 HashMaps 几乎按照定义是未排序的 一个好的哈希函数会产生看似随机的密钥分布 如果你想使
  • 从字符串中删除多个子字符串 - Java

    我需要从给定字符串中删除多个子字符串 例子 String exclude one two three String input if we add one and two we get three 我希望我的程序从输入字符串中删除所有出现的
  • cygwin有java sdk吗?

    cygwin有java sdk吗 如果有一个使用 cygwin 文件系统和 X windows 进行显示的本机 cygwin 实现 那就太好了 不幸的是我不知道这样的版本 我认为移植 OpenJDK 也需要付出很大的努力 但我还没有尝试过
  • 如何在Java中使用我的密码加密和解密字符串(PC而非移动平台)? [复制]

    这个问题在这里已经有答案了 我想加密一个字符串然后将其放入文件中 当我想要的时候也想解密它 我不需要很强的安全性 我只是想让其他人更难获取我的数据 我尝试了几种方法 这是这些 Md5加密 如何在 Android 中对字符串进行哈希处理 ht
  • 视频文件转换/转码 Google App Engine

    我想启动一个云计算项目 其简单任务是 接收上传的视频文件 对它们进行一些转码 转换 允许用户下载 流式传输生成的文件 我刚在想ffmpeg作为集成在的外部命令行工具Java Google App engine Application 由于很
  • Java JNDI 名称 java:/

    我正在遵循教程 https docs oracle com javase tutorial jndi index html https docs oracle com javase tutorial jndi index html 我的冒险
  • 如何将 Cucumber 中的数据表转换为对象列表?

    原标题 Java 中的 Cucumber DataTables 中的标量是什么意思 From 参考 Java 提供了几种标量类型 这些包括原始数字 类型 加上布尔值和字符 每个标量 原始 类型都有一个关联的包装类或 参考类型 阅读javad
  • 如何将 ArrayList 中的所有值相加或转换为 ArrayList

    我试图将 ArrayList 中的所有值相加 但没有任何方法可以让我得到总和 我必须找到从文本文件中提取的数字的平均值 public static void main String args throws IOException File
  • 从 java 类生成 xsd 的实用程序

    我想为以下类生成 xsd public class Node private String value private List
  • 外部化 Spring Security 配置?

    我有一个 Web 应用程序 可以使用 Spring Security 的几种不同配置 但是 这些差异配置都是在我的 applicationContext 配置文件中设置的 因此 为了在客户站点调整这些内容 必须在 WAR 文件内修改这些内容
  • Poi:从 xlsm 打开 Excel 文件后将其保存为 xlsx

    我正在编写一个java程序 它打开一个用户定义的excel文件 用数据填充它 然后将其保存在用户指定的路径 文件名和扩展名下 即使输入文件是 xlsm 也应该可以声明输出保存为 xlsx 但实际上是不可能的 如果我尝试使用下面的代码 打开文
  • 如何将点击侦听器添加到 Android/Java Textview 中的字符串中?

    我想要完成的是大多数 Twitter 应用程序中的标准操作 在文本视图中 文本字符串中的单词前面可能有 提及或 主题标签 并且它们实际上能够添加点击侦听器这个词启动了另一项活动 有谁知道这是如何实现的 下面我附上了一张示例照片 显示了我想要
  • Java 7 中新的 JNLP 缺少项目警告是怎么回事?

    从 Java 6 切换到 Java 7 后 我的 JNLP 仍然工作正常 但它现在抛出一系列如下错误 Missing Application Name manifest attribute for http blah com app jar
  • SQLite 64位整数在jooq中被识别为int

    我有一个与 jOOQ 一起使用的 SQLite 数据库 当我使用 jOOQ 的代码生成工具时 它会按预期构建所有表和记录类 然而 所有的 SQLiteINTEGER列变成java lang Integer生成的代码中的字段 问题是 SQLi
  • 使用 JavaFX 将可执行 Jar 限制为一个窗口

    我正在通过构建 JavaFX 应用程序E fx 剪辑 and Java场景生成器 基本功能是登录窗口 登录后 将打开新窗口 然后登录窗口消失 目前还处于原型阶段 用完eclipse后 我想要的功能都有了 启动时显示登录窗口 代码如下 Ove
  • 如何在 iText 7 中创建页面大小不等的文档

    如何在 iText 7 中创建页面大小不等的文档 iText7 可以吗 在iText5中 我使用document setPageSize and document newPage 如果您通过高级 API 添加内容 Document add
  • 如何在 Spring GCP 中订阅多个 Google PubSub 项目?

    我想在 Spring Boot 应用程序中订阅多个 Google Cloud PubSub 项目 阅读完相关问题后如何使用 Spring Cloud 在一个 Spring Boot 应用程序中连接 配置两个 pubsub gcp 项目 ht
  • Maven编译错误:包不存在

    我正在尝试向现有企业项目添加 Maven 支持 这是一个多模块项目 前 2 个模块编译和打包没有问题 但我面临编译错误 我尝试在多个模块中使用相同的依赖项 我的结构是 gt parent gt pom xml gt module 1 gt
  • Android 中的自定义相机应用程序问题 - 旋转 270、拉伸捕获视图且未获取所有功能

    我从代码中得到了帮助https github com josnidhin Android Camera Example https github com josnidhin Android Camera Example 但面临一些问题 例如
  • 带有客户端认证连接的 HTTP 客户端的 SOAP 请求超时异常

    我正在尝试点击具有客户端认证的网址并生成密钥 keytool genkey alias server keyalg RSA keystore example jks validity 10950 和密钥存储 keytool import t

随机推荐

  • 分类算法概述

    摘 要 分类是数据挖掘 机器学习和模式识别中一个重要的研究领域 通过对当前数据挖掘中具有代表性的优秀分类算法进行分析和比较 总结出了各种算法的特性 为使用者选择算法或研究者改进算法提供了依据 1 概述分类是一种重要的数据挖掘技术 分类的目的
  • MIUI解BL锁失败

    最后解决办法是 换USB 2 0接口 分析问题 或许可能是软件兼容性不好 USB3 0影响读取设备信息 导致无法解锁
  • 基于战争策略算法优化的BP神经网络(预测应用) - 附代码

    基于战争策略算法优化的BP神经网络 预测应用 附代码 文章目录 基于战争策略算法优化的BP神经网络 预测应用 附代码 1 数据介绍 2 战争策略优化BP神经网络 2 1 BP神经网络参数设置 2 2 战争策略算法应用 4 测试结果 5 Ma
  • 运算放大器的应用之:T形电阻网络公式的三种推导方法

    上面公式怎么推导 推导1 根据KCL KVL定律 当Vi单独作用时 当VREF单独作用时 根据叠加定理得 推导2 利用戴维宁定理推导 如下图所示 在A B处把电路断开 然后 利用戴维宁定理 得到如下等效电压及等效电阻 把输出电路替换成戴维宁
  • 实现快速排序

    原理 找出一个数字 然后从该数列的右边找一个数比该数字大的第一个数 填入该数的位置中去 然后又从左往右找第一个数大于或等于该数字的数 然后填入上一个数的位置中去 也就是上一次找比该数字大的第一个数的位置中去 直到i和j 相遇就停止循环 再排
  • 追尾事故降发生:超低功耗滴滴桔视ADAS落地实践

    桔妹导读 道路交通事故每年都给人类带来巨大的生命和财产损失 滴滴作为交通领域的深度参与者 不断地探索降低交通事故的方法 本文重点介绍车载视觉团队是如何在滴滴的场景下 在桔视设备上 使用超低功耗的桔视ADAS 高级辅助驾驶系统 技术 降低交通
  • 计算机系统大作业

    摘 要 本文对hello c在Linux下的生命周期进行了分析 通过一些Linux平台的工具 如gcc objdump edb gdb readelf对程序代码的预处理 编译 汇编 链接 反汇编的过程进行了分析 对比 通过hello在she
  • 我曾经喜欢夏天

    我小时候在农村长大 夏末初秋时节 在农村院子里躺在凉席上 听大人讲他们一天的收获和明天的计划 夜风吹来树叶沙沙作响 夜空中繁星点点 偶尔飞过一两只飞鸟 发出清脆的声音 那些夜里 我要么抱着一个井里冰镇过的大西瓜 大块朵颐 要么啃着一根自家地
  • Linux yum提示Loaded plugins 错误的解决办法

    在Linux中使用yum时出现错误信息 Loaded plugins fastestmirror langpacks Existing lock var run yum pid another copy is running as pid
  • GPT3动口,RT-1动手,智能机器人开卷; 代码开源!

    机器学习 ML 研究的多个子领域 例如计算机视觉和自然语言处理 的最新重大进展是通过一种共享的通用方法实现的 该方法利用大型 多样化的数据集和能够有效吸收所有数据的表达模型 尽管已经有各种尝试将这种方法应于机器人技术 但机器人尚未利用高性能
  • 数图互通高校学生宿舍管理中会细分为哪些模块?

    数图互通学生宿舍管理系统 功能模块包括 基础数据 在线选宿舍 学生入住 宿舍调整 学生退宿 学生社区评定 外来人员来访管理 物品出楼登记 归寝管理 异性来访登记 宿舍维修管理 宿舍收费管理 辅导员管理 综合查询 统计报表
  • 24_Pandas.DataFrame,Series元素值的替换(replace)

    24 Pandas DataFrame Series元素值的替换 replace 要替换pandas DataFrame pandas Series元素的值 请使用replace 方法 这里 将描述以下内容 替换元素 一次替换多个不同的元素
  • tar: /usr/app: Not found in archive

    用tar解压文件报错 tar usr app Not found in archive 解决办法 加上 C就行 例如 tar zxvf zookeeper 3 4 10 tar gz C usr app
  • 细数华人那些代工企业

    原文地址 http www shudoo com news index php ac va aid 4438 一个不缺少人的社会 一个劳动密集型社会 廉价的社会劳动力让中国成为了世界的代工工厂 为客户提供低成本的代工服务 这其中有我们熟悉的
  • 19 【flex布局】

    34 移动Web开发之flex布局 34 1 flex布局体验 34 1 1 传统布局与flex布局 传统布局 兼容性好 布局繁琐 局限性 不能在移动端很好的布局 flex布局 操作方便 布局极为简单 移动端应用很广泛 PC 端浏览器支持情
  • iframe父子窗口通信(免跨域)(最下面附带封装好的)

    子窗口对父窗口发出消息 window parent postMessage type 自定义事件名 自定义事件名 value JSON stringify ObjData 数据 只能是字符串 父窗口接受消息 window addEventL
  • 关于QSqlDatabase::addDatabase的一个运行时错误

    这是一个在开发过程中不会出现的问题 但是当你发布程序后 将程序安装在别的机器 在运行时会出现的错误 错误如下 QSqlDatabase QSQLITE driver not loaded QSqlDatabase available dri
  • linux apache 403 forbidden,apache服务器显示403 Forbidden的原因和解决方法

    HTTP 错误 403 禁止访问 即403 Forbidden You don t have permission to access on this server 可能是权限不足引起的问题 解决方法 打开apache的配置文件httpd
  • 区块链如何应用于边缘计算、隐私计算联邦学习

    近年来数据安全事件频发 数据安全威胁日益严峻 随着 中华人民共和国数据安全法 的颁布和实施 对企业合规安全地发挥数据价值提出了更高的要求 如何在保障数据安全的前提下发挥数据价值 平衡效率和风险 是当前面临的重要课题 本文探讨如何将区块链应用
  • kafka扩容数据自动重分配脚本

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