在Ubuntu上配置Apache Kafka的穩定版本涉及多個步驟,包括安裝Java、Zookeeper、Kafka本身,以及配置相關的環境變量和服務單元文件。以下是一個詳細的步驟指南:
首先,確保你的系統上安裝了Java。你可以使用以下命令來安裝OpenJDK 8:
sudo apt update
sudo apt install openjdk-8-jdk
安裝完成后,驗證Java是否正確安裝:
java -version
Kafka需要Zookeeper來管理其集群狀態。你可以從Apache Zookeeper的官方網站下載Zookeeper的安裝包。
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar xvf zookeeper-3.4.6.tar.gz
sudo mv zookeeper-3.4.6 /usr/local/zookeeper
配置Zookeeper:
sudo cat > /usr/local/zookeeper/conf/zoo.cfg << EOF
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
EOF
啟動Zookeeper服務:
sudo /usr/local/zookeeper/bin/zkServer.sh start
驗證Zookeeper是否啟動成功:
sudo netstat -nap | grep 2181
下載Kafka的安裝包:
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -zxvf kafka_2.12-3.5.2.tgz
sudo mv kafka_2.12-3.5.2 /usr/local/kafka
配置Kafka環境變量:
echo "export KAFKA_HOME=/usr/local/kafka" >> /etc/profile
echo "export PATH=\$PATH:\$KAFKA_HOME/bin" >> /etc/profile
source /etc/profile
進入Kafka的配置目錄:
cd /usr/local/kafka/config
編輯server.properties文件,配置以下參數:
broker.id=0
listeners=PLAINTEXT://your_server_ip:9092
zookeeper.connect=your_server_ip:2181
delete.topic.enable=true
將your_server_ip替換為你的服務器IP地址。
啟動Kafka服務:
sudo /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
驗證Kafka是否啟動成功:
sudo netstat -nap | grep 9092
創建一個測試Topic:
sudo /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
發布消息到Topic:
sudo /usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
訂閱并消費消息:
sudo /usr/local/kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
創建systemd單元文件以便Kafka和Zookeeper在系統啟動時自動啟動:
sudo nano /etc/systemd/system/zookeeper.service
添加以下內容:
[Unit]
Description=Apache Zookeeper server
After=network.target
Requires=network.target
[Service]
Type=simple
User=kafka
ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=always
[Install]
WantedBy=multi-user.target
創建Kafka服務單元文件:
sudo nano /etc/systemd/system/kafka.service
添加以下內容:
[Unit]
Description=Apache Kafka Server
After=zookeeper.service
Requires=zookeeper.service
[Service]
Type=simple
User=kafka
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh
Restart=always
[Install]
WantedBy=multi-user.target
重新加載systemd配置并啟動服務:
sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl enable kafka
sudo systemctl start zookeeper
sudo systemctl start kafka
為了提高安全性,你可以考慮以下措施:
以上步驟應該可以幫助你在Ubuntu上穩定配置Apache Kafka。如果在配置過程中遇到問題,請檢查日志文件以獲取更多信息。