溫馨提示×

Kafka在Ubuntu上的安裝步驟是什么

小樊
43
2025-09-19 21:08:49
欄目: 智能運維

一、環境準備

  1. 系統要求:推薦使用Ubuntu 22.04/24.04 LTS(長期支持版本,穩定性高,兼容性好);需滿足最低配置:2核CPU、4GB內存、20GB存儲(生產環境需根據數據量擴容)。
  2. 安裝Java環境:Kafka基于Java開發,需安裝OpenJDK 11及以上版本。執行以下命令安裝并驗證:
    sudo apt update && sudo apt install -y openjdk-11-jdk
    java -version  # 驗證安裝(需顯示11+版本)
    

二、下載與解壓Kafka

  1. 下載Kafka二進制包:訪問Apache Kafka官網(downloads.apache.org/kafka)選擇最新穩定版本(如3.6.1),或使用wget直接下載:
    wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
    
  2. 解壓并移動到安裝目錄:解壓下載的壓縮包,并將Kafka移動到/opt/kafka(推薦,避免權限問題):
    tar -xzf kafka_*.tgz
    sudo mv kafka_2.13-3.6.1 /opt/kafka
    

三、配置Kafka

  1. 編輯核心配置文件:進入Kafka配置目錄,修改server.properties(關鍵配置項說明):
    sudo vim /opt/kafka/config/server.properties
    
    • broker.id:集群中Broker的唯一標識(單機環境設為0);
    • listeners:Broker監聽的地址和端口(默認PLAINTEXT://:9092);
    • log.dirs:Kafka日志文件的存儲路徑(需提前創建并賦予權限,如/var/lib/kafka-logs);
    • zookeeper.connect:ZooKeeper集群地址(單機環境用localhost:2181,集群用逗號分隔的多個地址)。

四、啟動ZooKeeper(傳統模式必需) Kafka 2.8及以上版本支持KRaft模式(無需ZooKeeper),但傳統模式仍需ZooKeeper管理元數據。若使用傳統模式:

  1. 安裝ZooKeeper:Ubuntu自帶zookeeperd,可直接啟動:
    sudo apt install -y zookeeperd
    sudo systemctl start zookeeper  # 啟動服務
    sudo systemctl status zookeeper  # 驗證狀態(需顯示"active (running)")
    
  2. 配置ZooKeeper:編輯/etc/zookeeper/conf/zoo.cfg,設置數據目錄和端口:
    dataDir=/var/lib/zookeeper
    clientPort=2181
    

五、啟動Kafka服務

  1. 啟動Kafka:進入Kafka的bin目錄,使用-daemon參數在后臺啟動:
    /opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
    
  2. 集成Systemd(可選,推薦):創建Systemd服務文件,實現開機自啟和進程管理:
    sudo vim /etc/systemd/system/kafka.service
    
    內容如下:
    [Unit]
    Description=Apache Kafka
    After=zookeeper.service  # 依賴ZooKeeper(傳統模式)
    
    [Service]
    User=kafka
    ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
    ExecStop=/opt/kafka/bin/kafka-server-stop.sh
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    
    啟用并啟動服務:
    sudo systemctl enable kafka  # 開機自啟
    sudo systemctl start kafka   # 立即啟動
    

六、驗證Kafka功能

  1. 創建測試Topic:使用kafka-topics.sh創建名為test的Topic(分區數1,副本因子1):
    /opt/kafka/bin/kafka-topics.sh --create --topic test --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
    
  2. 生產與消費消息
    • 生產消息:啟動控制臺生產者,向test Topic發送消息:
      echo "Hello Kafka" | /opt/kafka/bin/kafka-console-producer.sh --topic test --bootstrap-server localhost:9092
      
    • 消費消息:啟動控制臺消費者,從test Topic接收消息(--from-beginning表示從最早消息開始):
      /opt/kafka/bin/kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server localhost:9092
      
    若消費者終端顯示“Hello Kafka”,則說明Kafka安裝成功。

七、常見問題解決

  • 端口沖突:若ZooKeeper或Kafka啟動時報端口沖突,修改zoo.cfg中的clientPortserver.properties中的listeners為其他端口(如2182、9093);
  • 權限問題:若Kafka無法寫入log.dirs,執行sudo chown -R kafka:kafka /var/lib/kafka-logs(假設Kafka以kafka用戶運行);
  • 版本兼容性:Kafka與ZooKeeper版本需匹配(如Kafka 3.6.x兼容ZooKeeper 3.7.x),建議參考官方文檔選擇推薦版本。

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