溫馨提示×

ubuntu下kafka配置步驟

小樊
45
2025-10-17 07:30:12
欄目: 智能運維

Ubuntu下Kafka配置詳細步驟

1. 安裝Java環境

Kafka依賴Java運行時環境(JRE),推薦使用OpenJDK 8或11(兼容性更好)。

sudo apt update
sudo apt install openjdk-11-jdk -y  # 推薦使用OpenJDK 11
java -version  # 驗證安裝(輸出需包含Java版本信息)

:若使用OpenJDK 8,將命令中的openjdk-11-jdk替換為openjdk-8-jdk。

2. 下載并解壓Kafka

從Apache Kafka官網下載最新穩定版本(如3.7.0),解壓至指定目錄(如/opt/kafka)。

wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz  # 替換為最新版本鏈接
tar -xzvf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 /opt/kafka  # 移動至/opt目錄(系統級軟件推薦路徑)

3. 配置Zookeeper(Kafka依賴組件)

Kafka通過Zookeeper實現集群管理和協調,需先配置Zookeeper。

  • 創建數據目錄
    sudo mkdir -p /opt/zookeeper/data  # 存儲Zookeeper數據
    
  • 配置Zookeeper
    復制默認配置文件并修改關鍵參數:
    sudo cp /opt/kafka/config/zoo_sample.cfg /opt/kafka/config/zoo.cfg  # 復制模板
    sudo vi /opt/kafka/config/zoo.cfg  # 編輯配置
    
    修改以下內容(根據實際路徑調整):
    dataDir=/opt/zookeeper/data  # 數據存儲路徑
    clientPort=2181              # 客戶端連接端口
    tickTime=2000                # 心跳間隔(毫秒)
    initLimit=10                 # 初始化連接超時(心跳數)
    syncLimit=5                  # 同步超時(心跳數)
    
  • 啟動Zookeeper
    /opt/kafka/bin/zkServer.sh start  # 啟動Zookeeper
    netstat -nap | grep 2181          # 驗證端口(需顯示LISTEN狀態)
    

4. 配置Kafka Broker

編輯Kafka主配置文件server.properties,設置關鍵參數:

sudo vi /opt/kafka/config/server.properties

修改以下核心配置(按需調整):

# Broker唯一標識(集群中需唯一)
broker.id=0  

# 監聽地址(單機用localhost,集群用服務器IP)
listeners=PLAINTEXT://localhost:9092  

# 對外公布的地址(集群中需指向服務器IP,供其他Broker訪問)
advertised.listeners=PLAINTEXT://your_server_ip:9092  

# 日志存儲目錄(需提前創建)
log.dirs=/opt/kafka/logs  

# Zookeeper連接地址(集群中需列出所有Zookeeper節點)
zookeeper.connect=localhost:2181  

# 允許刪除Topic(生產環境建議關閉)
delete.topic.enable=true  

# 日志保留時間(小時,默認168小時=7天)
log.retention.hours=168  

5. 配置環境變量(可選但推薦)

將Kafka和Zookeeper路徑添加至系統環境變量,方便全局調用。

sudo vi /etc/profile  # 編輯全局環境變量

在文件末尾添加:

export KAFKA_HOME=/opt/kafka
export PATH=$PATH:$KAFKA_HOME/bin
export ZOOKEEPER_HOME=/opt/kafka  # Zookeeper與Kafka同目錄時無需額外配置

使配置生效:

source /etc/profile

6. 啟動Kafka服務

  • 直接啟動(前臺模式,用于測試)
    /opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
    
  • 后臺守護進程模式(生產環境推薦)
    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
    
  • 驗證Kafka進程
    ps aux | grep kafka  # 查看是否有kafka進程
    netstat -nap | grep 9092  # 驗證Kafka端口(需顯示LISTEN狀態)
    

7. 驗證Kafka功能

  • 創建測試Topic
    /opt/kafka/bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test
    
  • 啟動生產者發送消息
    /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
    
    輸入消息(如Hello Kafka),按Ctrl+D結束輸入。
  • 啟動消費者接收消息
    /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
    
    應能看到生產者發送的消息,驗證Kafka通信正常。

8. 可選:配置開機自啟(生產環境必備)

通過systemd創建服務單元,實現Kafka和Zookeeper開機自動啟動。

  • 創建Zookeeper服務文件
    sudo vi /etc/systemd/system/zookeeper.service
    
    添加以下內容:
    [Unit]
    Description=Apache Zookeeper server
    After=network.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/opt/kafka/bin/zkServer.sh start
    ExecStop=/opt/kafka/bin/zkServer.sh stop
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  • 創建Kafka服務文件
    sudo vi /etc/systemd/system/kafka.service
    
    添加以下內容:
    [Unit]
    Description=Apache Kafka Server
    After=zookeeper.service
    
    [Service]
    Type=simple
    User=root
    ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
    ExecStop=/opt/kafka/bin/kafka-server-stop.sh
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  • 啟用并啟動服務
    sudo systemctl daemon-reload  # 重新加載systemd配置
    sudo systemctl enable zookeeper  # 開機自啟Zookeeper
    sudo systemctl enable kafka      # 開機自啟Kafka
    sudo systemctl start zookeeper   # 啟動Zookeeper
    sudo systemctl start kafka       # 啟動Kafka
    

以上步驟覆蓋了Ubuntu下Kafka的基礎配置流程,可根據實際需求調整參數(如集群配置、安全設置等)。配置完成后,即可通過Kafka API或命令行工具進行消息生產和消費。

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