在Debian系統中配置Apache Kafka涉及多個步驟,包括安裝必要的軟件、配置Kafka和ZooKeeper、以及優化設置。以下是一個詳細的指南:
首先,確保你的系統上已經安裝了Java運行環境(JRE)或Java開發工具包(JDK)和ZooKeeper。
# 安裝Java
sudo apt-get update
sudo apt-get install default-jdk
java -version
# 安裝ZooKeeper
sudo apt-get install zookeeperd
從Apache Kafka的官方網站下載最新版本的Kafka,并解壓到服務器上的目錄中。
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -xzf kafka_2.12-3.5.2.tgz
cd kafka_2.12-3.5.2
編輯Kafka的server.properties
文件,配置以下關鍵屬性:
listeners=PLAINTEXT://:9092
log.dirs=/var/log/kafka
num.network.threads=3
num.io.threads=8
batch.size=16384
linger.ms=5
buffer.memory=33554432
max.block.ms=60000
創建一個systemd服務文件以便在服務器啟動時自動運行Kafka。
sudo vi /etc/systemd/system/kafka.service
添加以下內容:
[Unit]
Description=The Kafka server
After=network.target zookeeper.target
[Service]
Type=simple
User=kafka
Group=kafka
WorkingDirectory=/kafka
ExecStart=/kafka/bin/kafka-server-start.sh /kafka/config/server.properties
ExecStop=/kafka/bin/kafka-server-stop.sh
Restart=always
[Install]
WantedBy=multi-user.target
然后重新加載systemd配置并啟動Kafka服務:
sudo systemctl daemon-reload
sudo systemctl start kafka
sudo systemctl enable kafka
使用以下命令檢查Kafka和ZooKeeper服務是否正在運行:
sudo systemctl status kafka
sudo systemctl status zookeeper
log.dirs
和buffer.memory
。為了提高系統安全性,建議創建一個專門用于運行Kafka的用戶和用戶組,并更改Kafka安裝目錄及其日志目錄的所有權。
# 創建新用戶和用戶組
sudo groupadd kafkasudo useradd -g kafka kafka
# 更改Kafka安裝目錄的所有權
sudo chown -R kafka:kafka /opt/kafka
# 如果Kafka使用了日志目錄,更改日志目錄的所有權
sudo chown -R kafka:kafka /opt/kafka/logs
以新創建的用戶身份啟動Kafka:
sudo su - kafka
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties