apache kafka系列之迁移与扩容工具用法

kafka topic迁移脚本 kafka脚本实现自动化无损热迁移topic。不用停kafka进程,不影响写入。在迁移过程中业务无感知。 立即下载

kafka迁移与扩容工具使用

参考官网site:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools#Replicationtools-6.ReassignPartitionsTool

说明:

当我们对kafka集群扩容时,需要满足2点要求:

  1. 将指定topic迁移到集群内新增的node上。
  2. 将topic的指定partition迁移到新增的node上。

1. 迁移topic到新增的node上

假如现在一个kafka集群运行三个broker,broker.id依次为101,102,103,后来由于业务数据突然暴增,需要新增三个broker,broker.id依次为104,105,106.目的是要把push-token-topic迁移到新增node上。脚本(json格式)如下所示:

lizhitao@localhost:$  ./bin/kafka-reassign-partitions.sh --zookeeper 192.168.2.225:2183/config/mobile/mq/mafka
--topics-to-move-json-file  migration-push-token-topic.json  --broker-list  "104,105,106"  --generate

脚本migration-push-token-topic.json文件内容如下:

{
"topics":
[
{
"topic": "push-token-topic"
}
],
"version":1
}

生成分配partitions的json脚本:

Current partition replica assignment

{"version":1,"partitions":[{"topic":"cluster-switch-topic","partition":10,"replicas":[8]},{"topic":"cluster-switch-topic","partition":5,"replicas":[4]},{"topic":"cluster-switch-topic","partition":3,"replicas":[5]},{"topic":"cluster-switch-topic","partition":4,"replicas":[5]},{"topic":"cluster-switch-topic","partition":9,"replicas":[5]},{"topic":"cluster-switch-topic","partition":1,"replicas":[5]},{"topic":"cluster-switch-topic","partition":11,"replicas":[4]},{"topic":"cluster-switch-topic","partition":7,"replicas":[5]},{"topic":"cluster-switch-topic","partition":2,"replicas":[4]},{"topic":"cluster-switch-topic","partition":0,"replicas":[4]},{"topic":"cluster-switch-topic","partition":6,"replicas":[4]},{"topic":"cluster-switch-topic","partition":8,"replicas":[4]}]}

重新分配parttions的json脚本如下:

migration-topic-cluster-switch-topic.json 

 {"version":1,"partitions":[{"topic":"cluster-switch-topic","partition":10,"replicas":[5]},{"topic":"cluster-switch-topic","partition":5,"replicas":[4]},{"topic":"cluster-switch-topic","partition":4,"replicas":[5]},{"topic":"cluster-switch-topic","partition":3,"replicas":[4]},{"topic":"cluster-switch-topic","partition":9,"replicas":[4]},{"topic":"cluster-switch-topic","partition":1,"replicas":[4]},{"topic":"cluster-switch-topic","partition":11,"replicas":[4]},{"topic":"cluster-switch-topic","partition":7,"replicas":[4]},{"topic":"cluster-switch-topic","partition":2,"replicas":[5]},{"topic":"cluster-switch-topic","partition":0,"replicas":[5]},{"topic":"cluster-switch-topic","partition":6,"replicas":[5]},{"topic":"cluster-switch-topic","partition":8,"replicas":[5]}]}

lizhitao@localhost:$   bin/kafka-reassign-partitions.sh --zookeeper 192.168.2.225:2183/config/mobile/mq/mafka01 --reassignment-json-file migration-topic-cluster-switch-topic.json --execute

2.topic修改(replicats-factor)副本个数

lizhitao@localhost:$ ./bin/kafka-reassign-partitions.sh --zookeeper   192.168.2.225:2183/config/mobile/mq/mafka

--reassignment-json-file  replicas-update-push-token-topic.json  --execute

假如初始时push-token-topic为一个副本,为了提高可用性,需要改为2副本模式。

脚本replicas-push-token-topic.json文件内容如下:

{
        "partitions":
                [
                {
                        "topic": "log.mobile_nginx",
                        "partition": 0,
                        "replicas": [101,102,104]
                },
                {
                        "topic": "log.mobile_nginx",
                        "partition": 1,
                        "replicas": [102,103,106]
                },
{
"topic": "xxxx",
"partition": 数字,
"replicas": [数组]
}                
],             
        "version":1
}

3.topic的分区扩容用法

a.先扩容分区数量,脚本如下:

例如:push-token-topic初始分区数量为12,目前到增加到15个

lizhitao@localhost:$ ./bin/kafka-topics.sh --zookeeper 192.168.2.225:2183/config/mobile/mq/mafka  --alter   --partitions 15   --topic   push-token-topic

b.设置topic分区副本

 

lizhitao@localhost:$ ./bin/kafka-reassign-partitions.sh --zookeeper  192.168.2.225:2183/config/mobile/mq/mafka

--reassignment-json-file partitions-extension-push-token-topic.json  --execute

 

脚本partitions-extension-push-token-topic.json文件内容如下:

{ "partitions": [ { "topic": "push-token-topic", "partition": 12, "replicas": [101,102] }, { "topic": "push-token-topic", "partition": 13, "replicas": [103,104] }, { "topic": "push-token-topic", "partition": 14, "replicas": [105,106] } ], "version":1 }

机器学习入门指南:Jupyter Notebook实战 对于机器学习工程师而言,他们更擅长的是算法、模型、数据探索的工作,而对于工程化的能力则并不是其擅长的工作。Jupyter Notebook生成PMML文件1​​​​​​​。Jupyter Notebook生成PMML文件2​​​​​​​。PySpark Notebook建模 -折线图​​​​​​​。TensorFlowNotebook建模​​​​​​​。R Notebook建模 - 散点图​​​​​​​。PySpark Notebook建模​​​​​​​。R Notebook获取训练数据集​​​​​​​。 阅读详情

相关推荐

手把手教你用Ollama & AnythingLLM搭建AI知识库,无需编程,跟着做就行!

本地运行大模型耗资源,需要选择较小的模型作为基础模型。在终端中运行时可能会出现 CUDA 错误,表示显存不足,导致提供的端口失效。中文支持不够完善。\3. 文中提到的技术软件工具有:Ollama、Chatbox、Open WebUI、向量数据库、嵌入模型、本地模型 Gemma、AnythingLLM。

2401_86435672的博客 1万+

生产环境 kafka 平滑迁移之旅

本次kafka broker停服机器维修的本质,从应用技术的角度看,是对生产环境kafka集群 高可用的一次检阅。而这次检阅是被动的一次检阅,并不是由研发主动发起的。被动检阅,有点类似搞突击检测,但我们比突击检测好的是,还可以有足够的时间为了kafka集群具备高可用,做必要的自检工作,准备工作,验证工作;也把这么多年欠的kafka高可用的技术债给还了。

liuwenjie517333813的专栏 2177

XMind文件解析黑科技:用Python实现版本自适应读取(兼容2010-2024)

本文深入探讨了如何利用Python实现XMind文件的版本自适应解析,兼容从2010到2024年的各版本。通过分析XMind文件作为ZIP压缩包的本质,文章提供了智能探测文件内部结构(JSON或XML)并构建健壮读取逻辑的完整方案,有效解决了版本兼容性难题,并演示了将解析数据转换为PlantUML等下游应用的实战案例。

weixin_29041767的博客 682

kafka集群迁移方案

自建Kafka集群迁移上云 阿里云:Alibaba Cloud Help Center - Cloud Definition and Explanation of Cloud Based Services - Alibaba Cloud 腾讯云:消息队列 CKafka 方案1:单写双消费迁移 - 消息平台操作指南 - 文档中心 - 腾讯云 自建Kafka集群迁移 迁移前准备 1、kafka集群规划,主要考虑磁盘容量以及扩展性,如果数据量比较大,可以考虑部署5个broker节点,每个节点挂载4块数据

weixin_43046724的博客 4633

【ArcGIS Pro微课1000例】0073:ArcGIS Pro3.5.2学习版下载及安装教程

ArcGIS Pro 3.5.2安装教程摘要:系统需Windows10及以上,8GB内存(推荐32GB)。安装步骤:1)安装.NET 8.0运行环境;2)执行主程序安装包,按向导完成基础安装;3)安装升级补丁;4)替换AfCore.dll文件并导入注册表。注意安装后删除临时文件节省空间。软件下载地址包含在百度网盘链接。安装过程需依次完成环境配置、主程序安装、补丁更新及破解步骤。

智慧空间实验室 1772

rknn-toolkit推理yolov5-face.rknn模型--python代码

import os import urllib import traceback import time import sys import numpy as np import cv2 from rknn.api import RKNN ONNX_MODEL = 'yolov5s.onnx' RKNN_MODEL = 'yolov5s.rknn' IMG_PATH = './bus.jpg' DATASET = './dataset.txt' QUANTIZE_ON = True BOX_THR.

C/C++、嵌入式开发、深度学习算法、模型部署与推理优化 3079

迁移实践之Kafka

通过扩种/缩减集群节点,以及Kafka自带的迁移功能,将旧节点数据迁移至新节点。

mujingluo的博客 1203

【华为OD机试真题E卷】474、推荐多样性 | 机试真题+思路参考+代码解析(E卷复用)(C++、Java、Py)

题目描述 >推荐多样性需要从多个列表中选择元素,一次性要返回 N 屏数据(窗口数量),每屏展示 K 个元素(窗口大小),选择策略:   各个列表元素需要做穿插处理,即先从第一个列表中为每屏选择一个元素,再从第二个列表中为每屏选择一个元素,依次类推   每个列表的元素尽量均分为 N 份,如果不够 N 个,也要全部分配完,参考样例图:

KJ.JK 4434

kafka的迁移干货

随着业务的发展, 服务器所在网段/机群不允许kafka继续保留在那, 需要移动到先机器上. 哎呀上面是废话,总的说就是: 2台老kafka不要了,数据要迁移到新的2台kafka上面.要求数据不丢失 通过查询官网,并无直接切换的命令,当前版本是kafka 0.8.1, 说是0.8.2才提供老机器的退役功能. 不过没关系, 我们有一个变通的方法: kafka提供了修改复制因子的方...

weixin_30772105的博客 629

uniapp - 最新详细实现web-view网页与安卓苹果App端之间互相通信功能,苹果app/安卓app平台与内嵌webview组件内的网页进行相互传值,内置网页与app双向实时通信,详细示例代码

uni-app,Android安卓,苹果ios,app,内嵌webview,第三方H5网页,app和web-view通信传值,web-view引入的页面向App主应用传递数据,App端与webview端相互通信,App端和H5端webview之间的通信,uniapp实现webview和APP之间的传值通信,如何互相传递对象数据,数据传递了接收不到,web-view页面向app内发送消息,监听传递的参数,uni-app和web-view页面相互传参,报错怎么办,跨域,屏幕空白出错,数据交互,解决手机物理返回按

🏆 前端领域优质创作者 4741

【WRFDA实操第一期】服务器中安装 WRFPLUS 和 WRFDA

【WRFDA实操第一期】安装 WRFPLUS 和 WRFDA

WW、forever的博客 2037

Kafka数据迁移全解析:同集群和跨集群

Kafka数据迁移全解析:同集群和跨集群

虽非技冠群英首,愿与同道共长歌; 大鹏一日同风起,扶摇直上九万里; 3154

PoE 的三大国际标准:PoE、PoE+、PoE++

很多人知道 PoE 能“一根网线,既供电又传数据”,但鲜少有人能说清楚:PoE 供电到底分几种标准?差别有多大?哪些设备要用 PoE,哪些必须上 PoE+ 或 PoE++?今天,我们就来一次彻底的“拆解”,把 PoE 的三大国际标准——讲得明明白白,顺便也帮你厘清网络工程中的常见“供电疑惑”。

网络技术联盟站 1547

apache kafka技术分享系列(目录索引)

apache Kafka中国社区中国社区QQ群1:162272557未满 收费5¥,保证QQ运营,腾讯QQ VIP收年费,2000人群非常活跃,质量很高中国社区QQ群2:414762562未满 1000人群中国社区QQ群3:191278841未满 1000人群中国社区QQ群4:415846802 未满 1000人群每当有新blog发布时,会在此处更新,欢迎大家拍砖共同成长目录索引...

李志涛的专栏 12万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

apache kafka技术分享系列(目录索引) .

apache kafka中国社区QQ群:162272557 每当有新blog发布时,会在此处更新,欢迎大家拍砖共同成长 目录索引: 1)apache kafka消息服务 2)kafka在zookeeper中存储结构 3)kafka log4j配置 4)kafka replication设计机制 5)apache kafka监控系列-监控指标 6)kafka.common

xiao_jun_0820的专栏 1610

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

apache kafka技术分享系列(目录索引)--转载

原文地址:http://blog.csdn.net/lizhitao/article/details/39499283 kafka开发与管理: 1)apache kafka消息服务 2)kafak安装与使用 3)apache kafka中server.properties配置文件参数说明 4)apache kafka中topic级别配置 5)Apache kafka客户端开发...

203

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

apache kafka技术分享系列(目录索引)——美团大佬李志涛

每当有新blog发布时,会在此处更新,欢迎大家拍砖共同成长 目录索引: Kafka使用场景 1.为何使用消息系统 2.我们为何需要搭建Apache Kafka分布式系统 3.消息队列中点对点与发布订阅区别 Kafka设计与原理分析 1)apache Kafka概要介绍 2)Kafka副本同步机制理解 3)Kafka文件存储机制那些事(我在美团官博发表文章) 4) Kafka数据可靠性与一致性解析 5) Kafka集群partitions/replicas默认分配解析 6)Ap..

从2026-09-21开始专注于AI,以前是后端研发、大数据研发等 880
上一篇: Kafka监控工具KafkaOffsetMonitor配置及使用
下一篇: hadoop用途方向
wrr-cat
博客等级 码龄9年 128粉丝 302原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值