萬(wàn)網(wǎng)主機(jī) 建網(wǎng)站推廣網(wǎng)站排名優(yōu)化seo教程
title: 搭建分布式Kafka集群
date: 2024-12-1 14:00:00
categories:
- 服務(wù)器
tags:
- Kafka
- 大數(shù)據(jù)
搭建分布式Kafka集群
在主節(jié)點(diǎn)上安裝
Kafka
;
Kafka
使用Zookeeper
服務(wù)器來存儲(chǔ)元數(shù)據(jù)信息
- 本次實(shí)驗(yàn)環(huán)境:Centos 7-2009、Hadoop-3.1.4、JDK 8、Zookeeper-3.6.3、Kafka(2.11-2.3.1)
前提
-
在
Kafka-2.8.0
版本以前,運(yùn)行Kafka需要預(yù)先安裝Zookeeper
-
在
Kafka 2.8.0
版本以后,引入了Kraft(Kafka Raft)模式,可以使Kafka在不依賴外部Zookeeper
的前提下運(yùn)行 -
除此之外
Kafka
由Scala
語(yǔ)言編寫,而Scala
語(yǔ)言是由JAVA
語(yǔ)言發(fā)展而來,所以需要JVM的運(yùn)行環(huán)境
功能規(guī)劃
Master | Slave1 | Slave2 |
---|---|---|
主節(jié)點(diǎn) | 代理服務(wù)器 | 代理服務(wù)器 |
192.168.66.6 | 192.168.66.7 | 192.168.66.21 |
開始安裝
1. 上傳Kafka服務(wù)器
- 首先上傳/下載Kafka的文件到服務(wù)器上,或直接進(jìn)行以下的下載行為
# 使用wget命令下載Kafka文件(二選一)
wget -P /tmp/ -c 'https://repo.huaweicloud.com/artifactory/apache-local/kafka/2.3.1/kafka_2.11-2.3.1.tgz'# 使用curl命令下載Kafka文件(二選一)
curl -C - 'https://repo.huaweicloud.com/artifactory/apache-local/spark/spark-3.2.1/spark-3.2.1-bin-hadoop2.7.tgz' -O /tmp/# 解壓文件到指定目錄
tar -zxvf /tmp/kafka_2.11-2.3.1.tgz -C /opt/module/# 重命名文件夾
mv /opt/module/kafka_2.11-2.3.1/ /opt/module/kafka
2. 配置用戶環(huán)境變量
cat >> ~/.bashrc << "EOF"# ------------------- Kafka 配置--------------------
# 設(shè)置Kafka環(huán)境變量,指向Kafka安裝目錄
export KAFKA_HOME=/opt/module/kafka# 將Kafka的bin目錄添加到PATH環(huán)境變量
export PATH=$PATH:$KAFKA_HOME/bin
# -------------------------------------------------
EOF
-----------------------------------------------------------說明舉例 export PATH=$Kafka_HOME/bin:$PATH英文冒號(hào)代表分隔這段代碼表示
1. 當(dāng)你輸入一個(gè)命令時(shí),shell會(huì)首先在"KAFKA_HOME"這個(gè)變量的"bin"子目錄中查找,
2. 最后,若找不到,則在"PATH"的指定目錄中查找-------------------------------------------------------------
3. 修改配置文件
# 創(chuàng)建Kafka日志目錄
mkdir /opt/module/kafka/logs# 備份kafka配置文件
cp /opt/module/kafka/config/server.properties /opt/module/kafka/config/server.properties.bak# 修改Kafka的日志存儲(chǔ)目錄
sed -i 's|log.dirs=/tmp/kafka-logs|log.dirs=/opt/module/kafka/logs|' /opt/module/kafka/config/server.properties# 配置Kafka依靠指定ZooKeeper服務(wù)器進(jìn)行集群管理和元數(shù)據(jù)存儲(chǔ)
sed -i 's|zookeeper.connect=localhost:2181|zookeeper.connect=master:2181,slave1:2181,slave2:2181|' /opt/module/kafka/config/server.properties----------------------------------------------說明1. 可以使用IP地址或使用主機(jī)名,前提是配置好hosts/DNS解析
2. 根據(jù)自己的配置,修改連接的主機(jī)的信息
-----------------------------------------------
4. 同步文件
# 同步到slave1機(jī)器
scp -r /opt/module/kafka/ slave1:/opt/module/
scp ~/.bashrc root@slave1:/root# 同步到slave2機(jī)器
scp -r /opt/module/kafka/ slave2:/opt/module/
scp ~/.bashrc root@slave2:/root
5. 修改從節(jié)點(diǎn)配置
# 修改Slave1的broker-ID值
ssh slave1 "sed -i 's|broker.id=0|broker.id=1|' /opt/module/kafka/config/server.properties"# 修改Slave2的broker-ID值
ssh slave2 "sed -i 's|broker.id=0|broker.id=2|' /opt/module/kafka/config/server.properties"
6. 環(huán)境變量生效
# master節(jié)點(diǎn)環(huán)境變量生效
source ~/.bashrc# slave1節(jié)點(diǎn)環(huán)境變量生效
ssh slave1 'source ~/.bashrc'# slave2節(jié)點(diǎn)環(huán)境變量生效
ssh slave2 'source ~/.bashrc'
安裝結(jié)束
7. 前臺(tái)啟動(dòng)一臺(tái)Kafka服務(wù)器
在當(dāng)前控制臺(tái)前臺(tái)啟動(dòng)Kafka,使用
Ctrl``C
停止kafka
# 在master節(jié)點(diǎn)上執(zhí)行
kafka-server-start.sh $KAFKA_HOME/config/server.properties
8. 后臺(tái)啟動(dòng)Kafka服務(wù)器集群
# 在master節(jié)點(diǎn)上執(zhí)行
nohup $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties > $KAFKA_HOME/logs/nohup.out 2>&1 &# 在slave1節(jié)點(diǎn)上執(zhí)行
ssh slave1
nohup $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties > $KAFKA_HOME/logs/nohup.out 2>&1 &
exit# 在slave2節(jié)點(diǎn)上執(zhí)行
ssh slave2
nohup $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties > $KAFKA_HOME/logs/nohup.out 2>&1 &
exit
9.查看kafka進(jìn)程
-
master會(huì)有
Kafka
的進(jìn)程 -
slave1會(huì)有
Kafka
的進(jìn)程 -
slave2會(huì)有
Kafka
的進(jìn)程
# 命令
jps
10. 停止Kafka
# 停止master節(jié)點(diǎn)的Kafka服務(wù)
kafka-server-stop.sh# 停止slave1節(jié)點(diǎn)的Kafka服務(wù)
ssh slave1 kafka-server-stop.sh# 停止slave2節(jié)點(diǎn)的Kafka服務(wù)
ssh slave2 kafka-server-stop.sh
參考文檔
-
Linux 搭建 Kafka 環(huán)境 - 詳細(xì)教程_linux安裝kafka-CSDN博客
-
kafka-2.3.1版本的安裝_kafka2.3.1下載-CSDN博客
-
JVM-合理配置堆內(nèi)存_xms和xmx設(shè)置多少合適-CSDN博客
-
Kafka的分布式安裝及基本操作-劉宇_頭歌kafka安裝-CSDN博客