【大数据入门核心技术-Kafka】(七)Kafka扩容broker和数据迁移

news2025/2/2 12:48:47

目录

一、准备工作

1、安装好Zookeeper集群

2、安装好Kafka集群

二、Kafka扩容broker

三、Kafka数据迁移

1、查看主题列表

2、创建Topic

3、查看Topic详细信息 

4、生成需要迁移的json

5、生成迁移计划

6、执行迁移计划

7、查看迁移计划

8、确认topic数据分布


一、准备工作

1、安装好Zookeeper集群

【大数据入门核心技术-Zookeeper】(五)ZooKeeper集群搭建

2、安装好Kafka集群

【大数据入门核心技术-Kafka】(三)Kafka高可用集群部署

二、Kafka扩容broker

kafka集群扩容比较简单,机器配置一样的前提下只需要把配置文件里的brokerid改一个新的启动起来就可以。

复制kafka文件目录到新的节点目录

scp -r /usr/local/kafka_2.13-2.7.1 hadoop104:/usr/local/

cd /usr/local/kafka_2.13-2.7.1/config

vi server.properties

#指定该节点brokerID
broker.id=4
​
#分区数量
num.partitions=3
​
#kafka日志目录
log.dirs=/usr/local/kafka_2.13-2.7.1/logs
​
#指定kafka绑定监听地址
listeners=PLAINTEXT://hadoop104:9092
​
#指定zk配置
zookeeper.connect=hadoop101:2181,hadoop102:2181,hadoop103:2181

配置完后,启动kafka即可

# 启动Kafka
​
cd /usr/local/kafka_2.13-2.7.1
​
nohup bin/kafka-server-start.sh config/server.properties 2>&1 &

同理也可以可以拓展更多broker节点

三、Kafka数据迁移

集群扩容后数据是不会自动均衡到新机器上的,需要采用kafka-reassign-partitions.sh这个工具脚本。脚本可以工作在三种模式--generate,--execute,--verify

因服务器数量有限,本文以 某些topic的所在的broker节点为1,迁移到3个broker节点为例进行演示。如果是更多台,也是类似使用方法

1、查看主题列表

cd $KAFKA_HOME

bin/kafka-topics.sh --list --zookeeper hadoop101:2181,hadoop102:2181,hadoop103:2181

 

2、创建Topic

bin/kafka-topics.sh --create --zookeeper hadoop101:2181,hadoop102:2181,hadoop103:2181 --replication-factor 2 --partitions 2 --topic test_kafka

副本为2,分区为2

3、查看Topic详细信息 

bin/kafka-topics.sh --describe --zookeeper hadoop101:2181,hadoop102:2181,hadoop103:2181 --topic test_kafka

注意看参数 partitions为2

4、生成需要迁移的json

vi /tmp/topic-to-move.json

文件内容为需要迁移的topic,若有多个则填入多个:

{"topics": [
{"topic": "test_topic_001"}
],
"version":1
}

多个则为:
{"topics": [
{"topic": "test_topic_001"},
{"topic": "test_topic_002"},
{"topic": "test_topic_003"}
],
"version":1
}

5、生成迁移计划

 

例如迁移后的正常点的brokerid有1001, 1002, 1003, 1004, 1005, 1006

bin/kafka-reassign-partitions.sh --bootstrap-server 10-1-200-11:9092,10-1-200-15:9092 --topics-to-move-json-file /tmp/topic-to-move.json --broker-list "1001,1002,1003,1004,1005,1006" --generate 

vi /tmp/expand-cluster-reassignment.json

复制自动推荐的"Proposed partition reassignment configuration"迁移计划到/tmp/expand-cluster-reassignment.json文件中。

{"version":1,"partitions":[{"topic":"test","partition":0,"replicas":[1001],"log_dirs":["any"]},{"topic":"test_topic_001","partition":0,"replicas":[1002,1003],"log_dirs":["any","any"]},{"topic":"test_topic_001","partition":1,"replicas":[1003,1004],"log_dirs":["any","any"]},{"topic":"test_topic_001","partition":2,"replicas":[1004,1001],"log_dirs":["any","any"]},{"topic":"test_topic_001","partition":3,"replicas":[1001,1002],"log_dirs":["any","any"]},{"topic":"test_topic_001","partition":4,"replicas":[1002,1004],"log_dirs":["any","any"]}]}

vi /tmp/cur-cluster-assignment.json

备份当前的数据分布即“Current partition replica assignment”,以便有问题回滚

6、执行迁移计划

bin/kafka-reassign-partitions.sh --bootstrap-server 10-1-200-11:9092,10-1-200-15:9092 --reassignment-json-file /tmp/expand-cluster-reassignment.json --execute

7、查看迁移计划

bin/kafka-reassign-partitions.sh --bootstrap-server 10-1-200-11:9092,10-1-200-15:9092 --reassignment-json-file /tmp/expand-cluster-reassignment.json --verify

8、确认topic数据分布

查看kafka-manager UI

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/104070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Shiro框架学习笔记、整合Springboot、redis缓存

本笔记基于B站UP主不良人编程 目录 1.权限的管理 1.1什么是权限管理 1.2什么是身份认证 1.3什么是授权 2.什么是Shiro 3.Shiro的核心架构 3.1 S核心内容 4.shiro中的认证4.1认证 4.2shiro中认证的关键对象 4.3认证流程 4.4认证程序开发流程 4.4认证程序源码 4.5自定…

java ssm羽毛球馆管理和交流平台系统

羽毛球作为每个人爱好的一项体育运动,越来也收到人们的好评和关注。很多羽毛球爱好者通过网站的形式对羽毛球场地情况,羽毛球的爱好者的互相学习进行交流,方便了大众对于羽毛球的交流和沟通,提高羽毛球技术的同时,也让…

颠覆传统返利模式,针对用户复购率低的全新解决方案——消费盲返

如今互联网商业模式遍地开花,谈及商业模式,大家第一想到的肯定是积分消费返利,那么“消费返利”对于大家来说都不陌生,那么本期林工想给大家介绍的是一个怎么听怎么亏,实则已经悄悄爆火的模式——消费盲返,…

DNS寻址过程

文章目录什么是DNS寻址过程图显示什么是DNS DNS是域名系统( Domain Name System)的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。 寻址过程 本地…

【Linux】第三部分 Linux文件系统目录结构

【Linux】第三部分 Linux文件系统目录结构 文章目录【Linux】第三部分 Linux文件系统目录结构3. Linux文件系统目录结构总结3. Linux文件系统目录结构 可以右键打开终端 目录意义bin该目录存放的是经常使用到的命令,例如上图所示:cd , ls 等…

《计算机程序构造与解释》读书笔记(3)

文章目录1. 写在最前面2. 设计的取舍3. 赋值和局部状态3.1 局部状态变量3.2 引进赋值带来的利益3.3 引进赋值的代价3.3.1 同一和变化3.3.2 命令式程序设计的缺陷4. 求值的环境模型4.1 求值规则4.2 简单过程的应用4.3 将框架看做局部状态的展台4.4 内部定义5. 用变动数据做模拟5…

Mycat(13):全局表和普通表的配置和测试

1 全局表概述 一个真实的业务系统中,往往存在大量的类似字典表的表格,它们与业务表之间可能有关系,这种关系,可以理解为“标签”,而不应理解为通常的“主从关系”,这些表基本上很少变动,可以根…

Spring Security认证和授权

Spring Security认证和授权 一、Spring Security的认识 Spring Security是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity来做安全框架。小…

Windows C语言 UDP通信demo

目录编译环境快速入门编译指令服务端code客户端code参考文章以及遇到的问题编译环境 我的demo是通过此文章从C更改成的C,编译环境使用的是Mingw,如下图所示 快速入门 拷贝代码编译互传消息 编译指令 客户端:gcc .\udpclient.c -lwsock3…

《剑指offer》– 链表中倒数第k个节点、反转链表、合并两个排序的链表

一、链表中倒数时第k个节点: 1、题目: 输入一个链表,输出该链表中倒数第k个结点。 2、解题思路:单链表具有单向移动的特性。 (1)第一种:先遍历链表,算出链表节点数count&#xf…

计算机毕设Python+Vue学生用品采购系统(程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

我国风电行业发展现状:并网装机容量持续增长 产业集中化趋势明显

根据观研报告网发布的《2022年中国风电行业分析报告-行业全景评估与投资规划分析》显示,风电是一种清洁、绿色的可再生能源。风力发电是能源领域中技术最成熟、最具规模开发条件和商业化发展前景的发电方式之一。发展风力发电对于解决能源危机、减轻环境污染、调整能…

【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day13

大家好,我是陶然同学,软件工程大三明年实习。认识我的朋友们知道,我是科班出身,学的还行,但是对面试掌握不够,所以我将用这100多天更新Java面试题🙃🙃。 不敢苟同,相信大…

【1760. 袋子里最少数目的球】

来源:力扣(LeetCode) 描述: 给你一个整数数组 nums ,其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。 你可以进行如下操作至多 maxOperations 次: 选择任意一个袋子&#…

开发板到货记录一波

今天在终于拿到了期待已久的开发板RK3568,来,亮个相吧!!! 开发板资源还是相当丰富的,对于学习安卓&Linux都是非常友好的,开发板默认安装的是安卓11系统,由于经费问题目前还没有…

小米发明“永动机”:走路即可为智能设备充电

蓝牙耳机、智能智能手表、智能手环、智能眼镜、智能手机……随着科技的进步,越来越多的移动与可穿戴智能设备开始走进我们的生活,智能设备在给人们生活带来便利的同时,也带来了一些困惑,越来越多诸如手环、TWS耳机等智能穿戴设备&…

火热的元宇宙,成为未来趋势

近年来,中国在算力上突飞猛进,有望成为世界顶尖,再加数据和算法上的优势,中国就很有可能在元宇宙方面率先开发出原创性的技术,从而实现从“0”到“1”的突破。 元宇宙办公 在未来的元宇宙畅想中,人们不仅…

java Lambda表达式的标准格式及其前提带有(代码演示)

观看本文 首先 你要对Lambda的概念有个基本了解 对此 您可以先查看我的文章 java Lambda概念 通过实现线程简单体验一下Lambda表达式 跟着上一篇文章做 你的代码会是这样 new Thread( () ->{System.out.println("执行线程"); } ).start();而其中Lambda 表达式 则…

资产种类多数量大、使用地点分散?集中管理,一招搞定

随着银行规模不断壮大,资产数量也随之不断增加,同时银行资产具有总量大、价值高、使用地点分散、管理难度大的特点,IT资产、房产、办公用品、维修保养需求随着业务的快速增长对管理工作带来了压力。 传统资产管理4大痛点 01.账实不符 实物账…

【Python机器学习】神经网络中常用激活函数、损失函数、优化方法(图文解释 附源码)

下面以经典的分类任务:MNIST手写数字识别,采用全连接层神经网络 MNIST数据集是一个手写体的数字图片集,它包含有训练集和测试集,由250个人手写的数字构成。训练集包含60000个样本,测试集包含10000个样本。每个样本包括…