在Ubuntu上高效配置Kafka需要考慮多個方面,包括安裝、配置、優化等。以下是一個詳細的步驟指南:
Kafka是用Java編寫的,因此首先需要安裝Java環境??梢允褂靡韵旅钤赨buntu上安裝OpenJDK 8:
sudo apt update
sudo apt install openjdk-8-jdk
驗證Java安裝:
java -version
從Apache Kafka官網下載適合Ubuntu的Kafka版本,例如Kafka 3.5.2。使用wget下載并解壓:
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -xzvf kafka_2.12-3.5.2.tgz -C /usr/local
cd /usr/local/kafka_2.12-3.5.2
Kafka 2.8.0及以上版本不再依賴外部Zookeeper,但為了完整性,這里仍然提供一個基本的Zookeeper配置示例。
創建Zookeeper數據目錄和日志目錄:
sudo mkdir -p /usr/local/zookeeper/data
sudo mkdir -p /usr/local/zookeeper/log
編輯Zookeeper配置文件zoo.cfg
:
sudo cp config/zoo_sample.cfg /usr/local/zookeeper/conf/zoo.cfg
sudo vi /usr/local/zookeeper/conf/zoo.cfg
修改以下配置項:
dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/log
clientPort=2181
tickTime=2000
initLimit=10
syncLimit=5
server.0=localhost:2888:3888
server.1=localhost:2889:3889
server.2=localhost:2890:3889
啟動Zookeeper:
sudo bin/zookeeper-server-start.sh config/zoo.cfg
編輯Kafka的配置文件server.properties
:
sudo cp config/server.properties /usr/local/kafka_2.12-3.5.2/config/
sudo vi /usr/local/kafka_2.12-3.5.2/config/server.properties
修改以下配置項:
broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/usr/local/kafka_2.12-3.5.2/kafka_logs
num.network.threads=3
num.io.threads=8
log.flush.interval.messages=10000
log.flush.interval.ms=1000
log.retention.hours=168
log.segment.bytes=1073741824
zookeeper.connect=localhost:2181
delete.topic.enable=true
啟動Kafka服務器:
sudo bin/kafka-server-start.sh config/server.properties
創建一個測試Topic:
sudo bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
啟動Kafka生產者:
sudo bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
啟動Kafka消費者:
sudo bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
推薦使用G1垃圾回收器,并配置合適的JVM內存參數:
-Xms30g
-Xmx30g
-XX:PermSize=48m
-XX:MaxPermSize=48m
-XX:UseG1GC
-XX:MaxGCPauseMillis=20
-XX:InitiatingHeapOccupancyPercent=35
以上步驟和優化建議可以幫助你在Ubuntu上高效配置Kafka。根據具體需求和環境,可能需要進一步調整和優化。