溫馨提示×

Kafka配置Ubuntu上有哪些最佳實踐

小樊
48
2025-04-10 10:34:17
欄目: 智能運維

在Ubuntu上配置Apache Kafka時,以下是一些最佳實踐:

1. 安裝Java環境

Kafka是用Scala編寫的,運行在JVM上,因此需要先安裝JDK。推薦使用JDK 1.8。

sudo apt update
sudo apt install openjdk-11-jdk -y

2. 下載和解壓Kafka

從Apache Kafka官網下載預編譯的Kafka二進制文件,而不是源文件。例如,下載Kafka 3.6.2版本。

wget https://downloads.apache.org/kafka/3.6.2/kafka_2.12-3.6.2.tgz
tar -xzf kafka_2.12-3.6.2.tgz
sudo mv kafka_2.12-3.6.2 /usr/local/kafka

3. 配置Zookeeper

/usr/local/kafka/config目錄下編輯zookeeper.properties文件。

sudo vi /usr/local/kafka/config/zookeeper.properties

主要配置項包括:

  • dataDir: Zookeeper數據目錄。
  • clientPort: Zookeeper客戶端端口(默認為2181)。

4. 配置Kafka

/usr/local/kafka/config目錄下編輯server.properties文件。

sudo vi /usr/local/kafka/config/server.properties

主要配置項包括:

  • broker.id: Kafka broker節點ID。
  • listeners: Kafka監聽地址和端口(例如:PLAINTEXT://host_ip:9092)。
  • log.dirs: Kafka日志文件目錄。
  • zookeeper.connect: Zookeeper連接地址(例如:localhost:2181)。

5. 啟動Zookeeper和Kafka服務

使用systemd管理服務,創建并啟動Zookeeper和Kafka服務。

# 創建并啟動Zookeeper服務
sudo bash -c 'cat <<EOF > /etc/systemd/system/zookeeper.service
[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target
After=network.target

[Service]
Type=simple
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
User=kafka
Group=kafka

[Install]
WantedBy=multi-user.target
EOF'

sudo systemctl daemon-reload
sudo systemctl start zookeeper
sudo systemctl enable zookeeper

# 創建并啟動Kafka服務
sudo bash -c 'cat <<EOF > /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64"
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
User=kafka
Group=kafka

[Install]
WantedBy=multi-user.target
EOF'

sudo systemctl daemon-reload
sudo systemctl start kafka
sudo systemctl enable kafka

6. 防火墻配置

開放Kafka需要的端口(例如:9092和9093)。

sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9093/tcp --permanent
sudo firewall-cmd --reload

7. 驗證安裝

使用以下命令檢查Kafka是否在監聽端口9092。

netstat -tulnp | grep 9092

8. 創建和測試主題

創建一個測試主題并測試生產者和消費者。

# 創建測試主題
/usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

# 列出主題
/usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

# 生產消息
/usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

# 消費消息
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

9. 集群配置(可選)

如果需要配置Kafka集群,可以參考以下步驟:

  • 在多臺服務器上重復上述安裝和配置步驟。
  • 確保每臺服務器的server.properties文件中的broker.id、listenerszookeeper.connect配置正確。
  • 在任意一臺服務器上生成集群ID,并在其他服務器上執行相應的命令完成集群元數據配置。
/usr/local/kafka/bin/kafka-storage.sh random-uuid

通過這些步驟,您可以在Ubuntu上成功配置和運行Apache Kafka。希望這些最佳實踐對您有所幫助。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女