大数据-64 Kafka 高级特性 分区 分区重新分配 实测
创始人
2024-11-12 11:35:18
0

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(正在更新…)

章节内容

上节我们完成了如下的内容,基本都是特性概念相关的:

  • 分区相关介绍
  • 副本机制
  • 同步节点
  • 宕机恢复
  • Leader选举 基础概念、选举过程、为何不少数服从多数

在这里插入图片描述

分区重分配

向已经部署好的Kafka集群里添加机器,我们需要从已经部署好的Kafka节点中复制相应的配置文件,然后把里边的 BrokerID 修改为全局唯一的,最后启动这个节点即可让它加入到现有的Kafka集群中。

当前问题

新添加的Kafka节点并不会自动的分配数据,无法分担集群的负载,除非我们新建一个Topic。
在重新分布Topic分区之前,我们先来看看现在Topic的各个分区的分布位置。

启动服务

如果你的Kafka服务还未启动,需要先启动,再进行后续的测试实验。
我这里启动:

kafka-server-start.sh /opt/servers/kafka_2.12-2.7.2/config/server.properties 

启动结果如下图:
在这里插入图片描述

创建主题

kafka-topics.sh --zookeeper h121.wzk.icu:2181 --create --topic wzk_topic_test --partitions 5 --replication-factor 1 

我们的配置:

  • 创建一个5个分区的主题
  • Kafka此时的算法会保证所有分区都分配到现有的Kafka代理节点上

创建的结果如下:
在这里插入图片描述

查看主题

kafka-topics.sh --zookeeper h121.wzk.icu:2181 --describe --topic wzk_icu_test 

创建的结果如下图,可以观察到5个分区。
在这里插入图片描述

新增Kafka

在新的机器上部署Kafka服务,记得修改BrokerID。
刚才我们是单节点的,Kafka在 h121 节点上。

# 配置内容参考 h121 中的配置 # 但是注意要修改 BrokerID vim config/server.properties 
  • h121 broker 1
  • h122 broker 2
  • h123 broker 3 (暂时还不配置3节点)

在这里插入图片描述
此时我们来到 h122 用如下的命令启动Kafka,我启动的是临时的,如果你有需要,请用守护方式启动。

# 环境变量别忘了配置 kafka-server-start.sh /opt/servers/kafka_2.12-2.7.2/config/server.properties 

启动过程如下图:
在这里插入图片描述

查看集群

# 先进入ZK 在ZK中进行查看 zkCli.sh  get /cluster/id 

执行的过程是:

WatchedEvent state:SyncConnected type:None path:null [zk: localhost:2181(CONNECTED) 0] get /cluster/id {"version":"1","id":"DGjwPmfLSk2OKosFFLZJpg"} 

重新分区

我们使用Kafka自带的:kafka-reassign-partitions.sh 工具来重新发布分区,该工具有三种使用模式:

  • generate模式,给定需要重新分配的的Topic,自动生成 reassign plan (不会自动执行)
  • execute模式,根据指定的 reassign plan重新分配 Partition
  • verify模式,验证重新分配Partition是否成功

生成JSON

vim wzk_icu_test_to_move.json  {   "topics": [     {       "topic": "wzk_icu_test"     }   ],   "version": 1 } 

当前结果如下:
在这里插入图片描述
执行如下的脚本,来对分区进行配置:

kafka-reassign-partitions.sh --zookeeper h121.wzk.icu:2181 --topics-to-move-json-file wzk_icu_test_to_move.json --broker-list "0,1" --generate 

观察控制台的结果:
在这里插入图片描述

执行计划

Proposed Partition Reassignment Configuration 下面生成的就是将分区重新发布到 Broker 1上的结果,我们将这些内容保存到 result.json 中

vim result.json  {"version":1,"partitions":[{"topic":"wzk_icu_test","partition":0,"replicas":[1],"log_dirs":["any"]},{"topic":"wzk_icu_test","partition":1,"replicas":[0],"log_dirs":["any"]},{"topic":"wzk_icu_test","partition":2,"replicas":[1],"log_dirs":["any"]},{"topic":"wzk_icu_test","partition":3,"replicas":[0],"log_dirs":["any"]},{"topic":"wzk_icu_test","partition":4,"replicas":[1],"log_dirs":["any"]}]} 

运行后的写入情况如下:
在这里插入图片描述
我们继续执行:

kafka-reassign-partitions.sh --zookeeper h121.wzk.icu:2181 --reassignment-json-file wzk_icu_test_to_move_result.json --execute 

显示结果如下,已经完成分区:
在这里插入图片描述

校验结果

kafka-reassign-partitions.sh --zookeeper h121.wzk.icu:2181 --reassignment-json-file wzk_icu_test_to_move_result.json --verify 

显示结果如下:
在这里插入图片描述

重新查看分区情况

kafka-topics.sh --zookeeper h121.wzk.icu:2181 --describe --topic wzk_icu_test  

显示的内容如下:
在这里插入图片描述
可以看到我们已经顺利的完成了重新分区分配!

相关内容

热门资讯

法子辅助!功夫川麻老是输什么情... 法子辅助!功夫川麻老是输什么情况(辅助挂)一直是真的有辅助app(真实有挂)1、首先打开功夫川麻老是...
方案辅助!天酷辅助器(辅助挂)... 方案辅助!天酷辅助器(辅助挂)切实真的是有辅助脚本(有挂教学)1、每一步都需要思考,不同水平的挑战天...
绝活辅助!朋朋政和麻为什么一直... 绝活辅助!朋朋政和麻为什么一直输(辅助挂)切实是真的有辅助工具(有挂方法)1、进入到朋朋政和麻为什么...
学习辅助!闲逸斗地主辅助(辅助... 学习辅助!闲逸斗地主辅助(辅助挂)本来是真的有辅助技巧(有挂猫腻)一、闲逸斗地主辅助游戏安装教程牌型...
方针辅助!蜀山四川辅助脚本(辅... 方针辅助!蜀山四川辅助脚本(辅助挂)切实是真的有辅助技巧(有挂攻略)暗藏猫腻,小编详细说明蜀山四川辅...
操作辅助!四川途游辅助软件下载... 操作辅助!四川途游辅助软件下载(辅助挂)一直是真的有辅助挂(发现有挂)1、游戏颠覆性的策略玩法,独创...
绝活儿辅助!微乐家乡麻辣自建房... 绝活儿辅助!微乐家乡麻辣自建房辅助app(辅助挂)果然存在有辅助攻略(有挂秘笈)1、玩家可以在微乐家...
项目辅助!奇迹陕西三代辅助器免... 项目辅助!奇迹陕西三代辅助器免费(辅助挂)切实确实有辅助技巧(真的有挂)在进入奇迹陕西三代辅助器免费...
指南书辅助!卡农免费辅助(辅助... 指南书辅助!卡农免费辅助(辅助挂)真是真的是有辅助插件(有挂秘诀)1、下载好卡农免费辅助脚本下载之后...
诀窍辅助!福建天天开心辅助器(... 诀窍辅助!福建天天开心辅助器(辅助挂)好像确实有辅助方法(有挂解密)1、福建天天开心辅助器辅助软件下...