kafka集群如何安装以及测试

发布时间:2021-11-26 14:08:59 作者:小新
来源:亿速云 阅读:242
# 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示例

集群安装步骤

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

问题2:生产者无法连接

问题3:副本不同步


总结

通过本文,您已完成: 1. 3节点Kafka集群的部署 2. Topic创建与基础消息测试 3. 集群容错性验证

扩展建议: - 启用SSL加密通信 - 使用Kraft模式替代ZooKeeper(Kafka 3.3+) - 集成Prometheus监控指标

注:本文基于Kafka 3.6.0编写,其他版本可能略有差异。完整配置参考官方文档。 “`

该文档共约2300字,包含代码块、配置示例和结构化排版,可直接保存为.md文件使用。如需调整细节或补充内容可随时告知。

推荐阅读:
  1. playbook自动安装kafka集群
  2. kafka集群安装及管理(一)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

kafka

上一篇:CDH安装的hive启动后show tables报错怎么办

下一篇:C#如何实现基于Socket套接字的网络通信封装

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》