在Ubuntu下配置Kafka時,有幾個關鍵要點需要注意:
Kafka是用Scala編寫的,運行在JVM上,因此需要先安裝Java環境。推薦使用JDK 1.8。
sudo apt install openjdk-8-jdk
java -version
Kafka依賴于Zookeeper進行協調和管理。需要安裝并配置Zookeeper。
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar xvfz zookeeper-3.4.6.tar.gz
sudo mv zookeeper-3.4.6 /usr/local/zookeeper
sudo cat > /usr/local/zookeeper/conf/zoo.cfg << EOF
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
EOF
sudo /usr/local/zookeeper/bin/zkServer.sh start
解壓Kafka安裝包并進入配置目錄。
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -zvxf kafka_2.12-3.5.2.tgz
cd kafka_2.12-3.5.2
修改server.properties
文件中的關鍵配置項:
broker.id
: 每個Kafka broker的唯一標識。listeners
: Kafka監聽的地址和端口。advertised.listeners
: 對外暴露的地址和端口。log.dirs
: Kafka日志存儲的目錄。zookeeper.connect
: Zookeeper的連接地址。示例配置:
broker.id=0
listeners=PLAINTEXT://your_server_ip:9092
advertised.listeners=PLAINTEXT://your_server_ip:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=localhost:2181
配置Kafka和Zookeeper的環境變量,以便系統能夠找到它們。
export KAFKA_HOME=/path/to/kafka
export PATH=$PATH:$KAFKA_HOME/bin
export ZOOKEEPER_HOME=/path/to/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin
將上述環境變量添加到/etc/profile
文件中,并使其生效:
echo "export KAFKA_HOME=/path/to/kafka" >> /etc/profile
echo "export PATH=$PATH:$KAFKA_HOME/bin" >> /etc/profile
echo "export ZOOKEEPER_HOME=/path/to/zookeeper" >> /etc/profile
echo "export PATH=$PATH:$ZOOKEEPER_HOME/bin" >> /etc/profile
source /etc/profile
使用配置文件啟動Kafka服務。
sudo /usr/local/kafka/bin/kafka-server-start.sh -daemon /path/to/kafka/config/server.properties
創建一個Topic以便測試Kafka的功能。
sudo /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
使用Kafka控制臺生產者發送和消費者接收消息,驗證配置是否成功。
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
使用systemctl
配置Kafka和Zookeeper的開機自啟。
sudo nano /lib/systemd/system/zookeeper.service
sudo nano /lib/systemd/system/kafka.service
根據需要修改服務文件,然后加載配置并啟動服務:
sudo systemctl daemon-reload
sudo systemctl enable zookeeper
sudo systemctl enable kafka
sudo systemctl start zookeeper
sudo systemctl start kafka
Kafka 3.x及以上版本引入了KRaft模式,不再依賴Zookeeper。需要修改Kafka配置文件以啟用KRaft模式。
broker.id=0
listeners=PLAINTEXT://your_server_ip:9092
advertised.listeners=PLAINTEXT://your_server_ip:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=false
通過以上步驟,你可以在Ubuntu上成功配置Kafka。請根據你的實際環境和需求調整配置參數。