溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kafka集群如何安裝以及測試

發布時間:2021-11-26 14:08:59 來源:億速云 閱讀:243 作者:小新 欄目:大數據
# Kafka集群如何安裝以及測試

## 目錄
1. [Kafka簡介](#kafka簡介)
2. [環境準備](#環境準備)
3. [集群安裝步驟](#集群安裝步驟)
   - [3.1 下載與解壓](#31-下載與解壓)
   - [3.2 配置ZooKeeper](#32-配置zookeeper)
   - [3.3 配置Kafka](#33-配置kafka)
   - [3.4 啟動服務](#34-啟動服務)
4. [集群測試](#集群測試)
   - [4.1 創建Topic](#41-創建topic)
   - [4.2 生產與消費消息](#42-生產與消費消息)
   - [4.3 容錯測試](#43-容錯測試)
5. [常見問題排查](#常見問題排查)
6. [總結](#總結)

---

## Kafka簡介
Apache Kafka是一個分布式流處理平臺,具有高吞吐、低延遲、水平擴展等特性,廣泛應用于實時數據管道、日志聚合和事件驅動架構。其核心組件包括:
- **Producer**:消息生產者
- **Consumer**:消息消費者
- **Broker**:Kafka服務節點
- **ZooKeeper**:集群元數據管理(Kafka 3.0+可逐步脫離ZooKeeper)

---

## 環境準備
### 硬件要求
- 至少3臺Linux服務器(物理機或虛擬機)
- 每臺配置建議:4核CPU/8GB內存/100GB磁盤(根據數據量調整)

### 軟件依賴
- JDK 1.8+  
  ```bash
  sudo apt install openjdk-11-jdk  # Ubuntu示例
  • ZooKeeper 3.5+(若使用Kafka內置ZooKeeper可跳過)
  • 服務器間SSH免密互通

集群安裝步驟

3.1 下載與解壓

在所有節點執行:

wget https://downloads.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz
tar -xzf kafka_2.13-3.6.0.tgz
mv kafka_2.13-3.6.0 /opt/kafka

3.2 配置ZooKeeper

若使用獨立ZooKeeper集群(以3節點為例): 1. 修改zookeeper.properties

   dataDir=/var/lib/zookeeper
   clientPort=2181
   server.1=node1:2888:3888
   server.2=node2:2888:3888
   server.3=node3:2888:3888
  1. 在每個節點創建myid文件:
    
    echo "1" > /var/lib/zookeeper/myid  # node1執行,node2改為2,node3改為3
    

3.3 配置Kafka

編輯/opt/kafka/config/server.properties

broker.id=1  # 每個節點唯一ID(node1=1, node2=2...)
listeners=PLNTEXT://node1:9092  # 改為當前節點IP/Hostname
log.dirs=/tmp/kafka-logs
zookeeper.connect=node1:2181,node2:2181,node3:2181
num.partitions=3  # 默認分區數
default.replication.factor=2  # 副本因子

3.4 啟動服務

  1. 啟動ZooKeeper(若獨立部署):
    
    /opt/kafka/bin/zookeeper-server-start.sh -daemon config/zookeeper.properties
    
  2. 啟動Kafka:
    
    /opt/kafka/bin/kafka-server-start.sh -daemon config/server.properties
    
  3. 驗證進程:
    
    jps | grep -E "QuorumPeerMain|Kafka"
    

集群測試

4.1 創建Topic

創建一個3分區、2副本的topic:

/opt/kafka/bin/kafka-topics.sh --create \
  --bootstrap-server node1:9092 \
  --topic test-topic \
  --partitions 3 \
  --replication-factor 2

查看topic詳情:

/opt/kafka/bin/kafka-topics.sh --describe \
  --bootstrap-server node1:9092 \
  --topic test-topic

輸出示例:

Topic: test-topic PartitionCount: 3 ReplicationFactor: 2
    Topic: test-topic Partition: 0 Leader: 1 Replicas: 1,2 Isr: 1,2
    Topic: test-topic Partition: 1 Leader: 2 Replicas: 2,3 Isr: 2,3
    Topic: test-topic Partition: 2 Leader: 3 Replicas: 3,1 Isr: 3,1

4.2 生產與消費消息

生產者(node1執行):

/opt/kafka/bin/kafka-console-producer.sh \
  --bootstrap-server node1:9092 \
  --topic test-topic

輸入測試消息:

Hello Kafka Cluster
This is a test message

消費者(node2執行):

/opt/kafka/bin/kafka-console-consumer.sh \
  --bootstrap-server node3:9092 \
  --topic test-topic \
  --from-beginning

應看到實時輸出的消息。

4.3 容錯測試

  1. 模擬Broker宕機
    
    ssh node2 "pkill -f kafka.Kafka"  # 關閉node2的Kafka
    
  2. 驗證消息持續消費
    • 生產者繼續發送消息
    • 消費者應無中斷(可能短暫延遲)
  3. 查看分區重新分配
    
    /opt/kafka/bin/kafka-topics.sh --describe --topic test-topic
    
    觀察LeaderIsr字段變化。

常見問題排查

問題1:啟動時報java.net.UnknownHostException

  • 原因server.properties中配置了無法解析的主機名
  • 解決
    
    vi /etc/hosts  # 添加所有節點IP映射
    192.168.1.101 node1
    192.168.1.102 node2
    192.168.1.103 node3
    

問題2:生產者無法連接

  • 檢查項
    
    netstat -tulnp | grep 9092  # 確認端口監聽
    iptables -L -n            # 檢查防火墻規則
    

問題3:副本不同步

  • 修復命令
    
    /opt/kafka/bin/kafka-leader-election.sh \
    --bootstrap-server node1:9092 \
    --topic test-topic \
    --partition 0 \
    --election-type PREFERRED
    

總結

通過本文,您已完成: 1. 3節點Kafka集群的部署 2. Topic創建與基礎消息測試 3. 集群容錯性驗證

擴展建議: - 啟用SSL加密通信 - 使用Kraft模式替代ZooKeeper(Kafka 3.3+) - 集成Prometheus監控指標

注:本文基于Kafka 3.6.0編寫,其他版本可能略有差異。完整配置參考官方文檔。 “`

該文檔共約2300字,包含代碼塊、配置示例和結構化排版,可直接保存為.md文件使用。如需調整細節或補充內容可隨時告知。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

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