Kafka3.x修改主题的副本数和负载节点数

Kafka3.x修改主题的副本数和负载节点数

修改分区数

移动至目录"/opt/module/kafka/bin"下,创建名称为"first"的主题,并指定分区为1,副本为2:

kafka-topics.sh --bootstrap-server hadoop101:9092 --create --partitions 1 --replication-factor 2 --topic first

修改分区数(注意:分区数只能增加,不能减少):

kafka-topics.sh --bootstrap-server hadoop101:9092 --alter --topic first --partitions 3

修改副本数

现在,需要修改每个分区的副本数为3,在目录"/opt/module/kafka"目录下,创建配置文件"increase-replication-factor.json"。需确定修改的主题名称和对应分区副本所在的broker.id:

{
	"version":1,
	"partitions":[
		{"topic":"first","partition":0,"replicas":[0,1,2]},
		{"topic":"first","partition":1,"replicas":[1,2,0]},
		{"topic":"first","partition":2,"replicas":[2,0,1]}
	]
}

执行命令修改副本数:

bin/kafka-reassign-partitions.sh --bootstrap-server 192.168.37.101:9092  --reassignment-json-file increase-replication-factor.json --execute

验证副本存储计划:

bin/kafka-reassign-partitions.sh --bootstrap-server 192.168.37.101:9092  --reassignment-json-file increase-replication-factor.json --verify

打开PrettyZoo查看主题first,分区各分区情况,进一步确定节点信息。

/kafka/brokers/topics/first/partitions/*/state:

{“controller_epoch”:4,“leader”:1,“version”:1,“leader_epoch”:5,“isr”:[1,0,2]}

{“controller_epoch”:4,“leader”:2,“version”:1,“leader_epoch”:5,“isr”:[2,1,0]}

{“controller_epoch”:4,“leader”:2,“version”:1,“leader_epoch”:5,“isr”:[2,0,1]}

可以看到,副本个数已修改为3。

服役新节点

首先,克隆一台虚拟机hadoop104,过程可以参考博客:Linux虚拟机的克隆

然后,修改/opt/module/kafka/config/server.properties的broker.id=3,添加hadoop104:2181至zookeeper.connect。

修改主机映射:

vim /etc/hosts

192.168.37.104 hadoop104

删除hadoop104中kafka/logs和kafka/datas目录下的内容:

rm -rf datas/* logs/*

重新启动hadoop101,hadoop102,hadoop103集群:

zk.sh start
kf.sh start

再单独启动hadoop105的Kafka服务,目录"/opt/module/kafka/bin":

kafka-server-start.sh -daemon ../config/properties

此时,hadoop104还未负载主题,创建一个指明主题的"topics-to-move.json":

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

生成负载均衡计划:

bin/kafka-reassign-partitions.sh --bootstrap-server hadoop101:9092 --topics-to-move-json-file topics-to-move.json --broker-list "0,1,2,3" --generate

{“version”:1,“partitions”:[{“topic”:“first”,“partition”:0,“replicas”:[3,0,1],“log_dirs”:[“any”,“any”,“any”]},{“topic”:“first”,“partition”:1,“replicas”:[0,1,2],“log_dirs”:[“any”,“any”,“any”]},{“topic”:“first”,“partition”:2,“replicas”:[1,2,3],“log_dirs”:[“any”,“any”,“any”]}]}

创建副本存储计划"increase-replication-factor.json",再kafka目录下:

vim increase-replication-factor.json
{"version":1,"partitions":[{"topic":"first","partition":0,"replicas":[3,0,1],"log_dirs":["any","any","any"]},{"topic":"first","partition":1,"replicas":[0,1,2],"log_dirs":["any","any","any"]},{"topic":"first","partition":2,"replicas":[1,2,3],"log_dirs":["any","any","any"]}]}

执行副本存储计划:

bin/kafka-reassign-partitions.sh --bootstrap-server hadoop101:9092 --reassignment-json-file increase-replication-factor.json --execute

验证副本计划:

bin/kafka-reassign-partitions.sh --bootstrap-server hadoop101:9092 --reassignment-json-file increase-replication-factor.json --execute

或者:

bin/kafka-topics.sh --bootstrap-server hadoop101:9092 --topic first --describe

Topic: first TopicId: WiWtw7QmSP28Le4JCy8uKw PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes=1073741824
Topic: first Partition: 0 Leader: 3 Replicas: 3,0,1 Isr: 1,0,3
Topic: first Partition: 1 Leader: 2 Replicas: 0,1,2 Isr: 2,0,1
Topic: first Partition: 2 Leader: 2 Replicas: 1,2,3 Isr: 2,1,3

可以看出,broker.id=3的节点参与了负载。

退役旧节点

创建执行计划:

bin/kafka-reassign-partitions.sh --bootstrap-server hadoop101:9092 --topics-to-move-json-file topics-to-move.json --broker-list "0,1,2" --generate

{“version”:1,“partitions”:[{“topic”:“first”,“partition”:0,“replicas”:[2,0,1],“log_dirs”:[“any”,“any”,“any”]},{“topic”:“first”,“partition”:1,“replicas”:[0,1,2],“log_dirs”:[“any”,“any”,“any”]},{“topic”:“first”,“partition”:2,“replicas”:[1,2,0],“log_dirs”:[“any”,“any”,“any”]}]}

创建副本存储计划:

vim increase-replication-factor.json
{"version":1,"partitions":[{"topic":"first","partition":0,"replicas":[2,0,1],"log_dirs":["any","any","any"]},{"topic":"first","partition":1,"replicas":[0,1,2],"log_dirs":["any","any","any"]},{"topic":"first","partition":2,"replicas":[1,2,0],"log_dirs":["any","any","any"]}]}

执行副本存储计划:

bin/kafka-reassign-partitions.sh --bootstrap-server hadoop101:9092 --reassignment-json-file increase-replication-factor.json --execute

查看主题为first的详细信息:

bin/kafka-topics.sh --bootstrap-server hadoop101:9092 --topic first --describe

Topic: first TopicId: WiWtw7QmSP28Le4JCy8uKw PartitionCount: 3 ReplicationFactor: 3 Configs: segment.bytes=1073741824
Topic: first Partition: 0 Leader: 2 Replicas: 2,0,1 Isr: 1,0,2
Topic: first Partition: 1 Leader: 2 Replicas: 0,1,2 Isr: 2,0,1
Topic: first Partition: 2 Leader: 2 Replicas: 1,2,0 Isr: 2,1,0

可以看出id为3的节点,即hadoop104已经退役。

停止hadoop105的kafka服务即可:

bin/kafka-server-stop.sh
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kafka节点的退役和上线操作可以按照以下步骤进行: 1. 节点退役: - 首先,停止要退役的Kafka节点。可以使用命令`bin/kafka-server-stop.sh`来停止Kafka服务器进程。 - 然后,删除该节点的数据和日志目录。在Kafka目录下找到对应节点的`datas`和`logs`目录,并将其删除。 2. 节点上线: - 首先,克隆要上线的节点的虚拟机镜像,并修改其IP地址和主机名称。 - 然后,连接到上线的节点,删除Kafka目录下的`datas`和`logs`目录,以确保节点上的数据是干净的。 - 进入Kafka的`config`目录,修改`server.properties`文件中的`broker.id`为新节点的ID。 - 启动之前的ZooKeeper服务器,然后启动新节点Kafka服务器。 请注意,上线节点后,需要执行负载均衡操作来确保数据在新节点上的复制。具体步骤如下: - 创建一个要进行负载均衡的主题。 - 根据JSON文件生成一个负载均衡计划。 - 创建副本存储计划,将所有副本存储在所有节点上。 - 执行副本存储计划。 - 验证副本存储计划是否成功。 以上是Kafka节点退役和上线的一般步骤,具体操作可能会因环境和需求而有所不同。在执行任何操作之前,请确保备份重要数据,并仔细阅读相关文档或咨询专业人士的建议。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [kafka学习记录—Broker(服役、退役节点kafka副本,文件存储)](https://blog.csdn.net/qq_53320067/article/details/124438810)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [kafka-broker-服役退役节点](https://blog.csdn.net/weixin_43119856/article/details/127637877)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大灰煜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值