kafka中節(jié)點(diǎn)實(shí)現(xiàn)服役和退役方式
服役新節(jié)點(diǎn)
1)新節(jié)點(diǎn)準(zhǔn)備
(1)關(guān)閉 bigdata03,進(jìn)行一個(gè)快照,并右鍵執(zhí)行克隆操作。
(2)開啟 bigdata04,并修改 IP 地址。
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改完記得重啟網(wǎng)卡:
systemctl restart network
?
(3)在 bigdata04 上,修改主機(jī)名稱為 bigdata04。
hostname bigdata04 # 臨時(shí)修改 [root@bigdata04 ~]# vim /etc/hostname bigdata04
還要記得修改 /etc/hosts文件,并進(jìn)行同步
修改bigdata01的hosts 文件,修改完之后,記得同步一下
192.168.52.11 bigdata01 192.168.52.12 bigdata03 192.168.52.13 bigdata02 192.168.52.14 bigdata04 xsync.sh /etc/hosts scp -r /etc/hosts root@bigdata04:/etc/
(4)重新啟動(dòng) bigdata03、bigdata04。
(5)修改 bigdata04 中 kafka 的 broker.id 為 3。
進(jìn)入bigdata04的kafka中,修改里面的配置文件 config/server.properties
(6)刪除 bigdata04 中 kafka 下的 datas 和 logs。
rm -rf datas/* logs/*
(7)啟動(dòng) bigdata01、bigdata02、bigdata03 上的 kafka 集群。
先啟動(dòng)zk集群
xcall.sh zkServer.sh stop xcall.sh zkServer.sh start
啟動(dòng)kafka集群(只能啟動(dòng)三臺(tái))
kf.sh start
(8)單獨(dú)啟動(dòng) bigdata04 中的 kafka。
bin/kafka-server-start.sh -daemon ./config/server.properties
查看kafka集群first主題的詳情:
bin/kafka-topics.sh --bootstrap-server bigdata01:9092 --topic first --describe
發(fā)現(xiàn)副本數(shù)并沒有增加。
由于我之前創(chuàng)建first這個(gè)主題的時(shí)候只有一個(gè)副本,不是三個(gè)副本,所以呢,演示效果不佳。
kafka-topics.sh --bootstrap-server bigdata01:9092 --topic third --create --partitions 3 --replication-factor 3

2)執(zhí)行負(fù)載均衡操作
(1)創(chuàng)建一個(gè)要均衡的主題
創(chuàng)建一個(gè)文件:vi topics-to-move.json
寫上如下代碼,如果多個(gè)topic 可以使用,分隔
{
"topics": [
{"topic": "third"}
],
"version": 1
}(2)生成一個(gè)負(fù)載均衡的計(jì)劃
在創(chuàng)建的時(shí)候,記得啟動(dòng)bigdata04節(jié)點(diǎn),否則計(jì)劃中還是沒有bigdata04
bin/kafka-reassign-partitions.sh --bootstrap-server bigdata01:9092 --topics-to-move-json-file topics-to-move.json --broker-list "0,1,2,3" --generate

未來(lái)的分區(qū)策略拷貝一份:
{"version":1,"partitions":[{"topic":"abc","partition":0,"replicas":[2,0,1],"log_dirs":["any","any","any"]},{"topic":"abc","partition":1,"replicas":[3,1,2],"log_dirs":["any","any","any"]},{"topic":"abc","partition":2,"replicas":[0,2,3],"log_dirs":["any","any","any"]}]}(3)創(chuàng)建副本存儲(chǔ)計(jì)劃(所有副本存儲(chǔ)在 broker0、broker1、broker2、broker3 中)。
vi increase-replication-factor.json
{"version":1,"partitions":[{"topic":"first","partition":0,"replicas":[3,2,0],"log_dirs":["any","any","any"]},{"topic":"first","partition":1,"replicas":[0,3,1],"log_dirs":["any","any","any"]},{"topic":"first","partition":2,"replicas":[1,0,2],"log_dirs":["any","any","any"]}]}
以上這個(gè)內(nèi)容來(lái)自于第二步的執(zhí)行計(jì)劃。
(4)執(zhí)行副本存儲(chǔ)計(jì)劃。
bin/kafka-reassign-partitions.sh --bootstrap-server bigdata01:9092 --reassignment-json-file increase-replication-factor.json --execute
(5)驗(yàn)證副本存儲(chǔ)計(jì)劃。
bin/kafka-reassign-partitions.sh --bootstrap-server bigdata01:9092 --reassignment-json-file increase-replication-factor.json --verify
如果不相信添加成功,可以查看first節(jié)點(diǎn)的詳情:

退役舊節(jié)點(diǎn)
1)執(zhí)行負(fù)載均衡操作
先按照退役一臺(tái)節(jié)點(diǎn),生成執(zhí)行計(jì)劃,然后按照服役時(shí)操作流程執(zhí)行負(fù)載均衡。
(1)創(chuàng)建一個(gè)要均衡的主題
kafka下添加文件:vim topics-to-move.json
添加如下內(nèi)容:
{
"topics": [
{"topic": "abc"}
],
"version": 1
}(2)創(chuàng)建執(zhí)行計(jì)劃。
bin/kafka-reassign-partitions.sh --bootstrap-server bigdata01:9092 --topics-to-move-json-file topics-to-move.json --broker-list "0,1,2" --generate
(3)創(chuàng)建副本存儲(chǔ)計(jì)劃(所有副本存儲(chǔ)在 broker0、broker1、broker2 中)。
添加文件: vi increase-replication-factor.json
添加如下代碼:
{"version":1,"partitions":[{"topic":"first","partition":0,"replicas":[0,2,1],"log_dirs":["any","any","any"]},{"topic":"first","partition":1,"replicas":[1,0,2],"log_dirs":["any","any","any"]},{"topic":"first","partition":2,"replicas":[2,1,0],"log_dirs":["any","any","any"]}]}(4)執(zhí)行副本存儲(chǔ)計(jì)劃
bin/kafka-reassign-partitions.sh --bootstrap-server hadoop11:9092 --reassignment-json-file increase-replication-factor.json --execute
(5)驗(yàn)證副本存儲(chǔ)計(jì)劃。
bin/kafka-reassign-partitions.sh --bootstrap-server hadoop11:9092 --reassignment-json-file increase-replication-factor.json --verify

2)執(zhí)行停止命令
在 bigdata04上執(zhí)行停止命令即可。
bin/kafka-server-stop.sh
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳談Java泛型中T和問號(hào)(通配符)的區(qū)別
下面小編就為大家?guī)?lái)一篇詳談Java泛型中T和問號(hào)(通配符)的區(qū)別。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-10-10
@ConfigurationProperties遇到的坑及解決
這篇文章主要介紹了解決@ConfigurationProperties遇到的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java計(jì)算代碼段執(zhí)行時(shí)間的詳細(xì)過程
java里計(jì)算代碼段執(zhí)行時(shí)間可以有兩種方法,一種是毫秒級(jí)別的計(jì)算,另一種是更精確的納秒級(jí)別的計(jì)算,這篇文章主要介紹了java計(jì)算代碼段執(zhí)行時(shí)間,需要的朋友可以參考下2023-02-02
SpringBoot整合Docker實(shí)現(xiàn)一次構(gòu)建到處運(yùn)行的操作方法
本文講解的是 SpringBoot 引入容器化技術(shù) Docker 實(shí)現(xiàn)一次構(gòu)建到處運(yùn)行,包括鏡像構(gòu)建、Docker倉(cāng)庫(kù)搭建使用、Docker倉(cāng)庫(kù)可視化UI等內(nèi)容,需要的朋友可以參考下2022-10-10
Mybatis中特殊SQL的執(zhí)行的實(shí)現(xiàn)示例
本文主要介紹了Mybatis中特殊SQL的執(zhí)行的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Windows?系統(tǒng)上安裝?Kafka的詳細(xì)步驟
本文詳細(xì)介紹了在Windows系統(tǒng)上安裝和配置Apache?Kafka的步驟,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2025-11-11
軟件開發(fā)基礎(chǔ)之設(shè)計(jì)模式概述
這篇文章介紹了軟件開發(fā)基礎(chǔ)之設(shè)計(jì)模式,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09
SpringBoot請(qǐng)求體缺失異常原因分析與處理方案
這篇文章主要介紹了SpringBoot請(qǐng)求體缺失異常原因分析與處理方案,該異常是因?yàn)閁serController的edit方法缺失了預(yù)期的UserUpdatePwdDTO請(qǐng)求體,產(chǎn)生原因主要由前端未發(fā)送請(qǐng)求體、Content-Type設(shè)置錯(cuò)誤或后端缺少@RequestBody注解導(dǎo)致,需要的朋友可以參考下2025-10-10

