基于zookeeper安装Kafka集群

操作系统:centOS 9  Stream,6台,基于vmware虚拟机创建

准备工作

  1. 确认系统环境

    • 确保所有服务器已安装了最新更新。
    • 安装Java Development Kit (JDK) 8或更高版本,因为ZooKeeper和Kafka都是基于Java开发的。例如,使用sudo dnf install java-17-openjdk-devel命令安装OpenJDK 17。这里我选择安装openjdk17,大家可以根据自身情况灵活选择。
  2. 规划集群架构

    • 分配3台服务器作为ZooKeeper节点,组成一个ZooKeeper集群,确保高可用性和数据一致性。
    • 另外3台服务器作为Kafka Broker节点,组成一个Kafka集群。

安装ZooKeeper集群

在每台ZooKeeper服务器上执行以下操作:

  1. 下载并解压ZooKeeper

    • 访问Apache ZooKeeper官网(https://zookeeper.apache.org/releases.html)下载最新稳定版的ZooKeeper压缩包。
      sudo wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz
    • 使用wget命令下载到服务器上,然后使用tar命令解压到指定目录,如 /usr/local/zookeeper-3.8.4.
      tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz 
      sudo mv apache-zookeeper-3.8.4-bin /usr/local
      cd /usr/local
      sudo mv apache-zookeeper-3.8.4-bin zookeeper-3.8.4
      sudo mkdir -p /var/lib/zookeeper
  2. 配置ZooKeeper

    • 编辑/usr/local/zookeeper-3.8.4/conf/zoo.cfg文件,可以在/etc/hosts中配置zoo1.example.com等3个主机名,根据您的服务器IP和端口规划配置以下关键参数:
      • dataDir: 数据存储路径,如 /var/lib/zookeeper.
      • clientPort: 客户端连接端口,通常设为 2181.
      • server.x: 定义ZooKeeper集群成员,其中 x 是一个唯一的ID,每个节点对应一行,格式为 server.id=hostname:port:port。例如:
        tickTime=2000
        dataDir=/var/lib/zookeeper
        clientPort=2181
        initLimit=20
        syncLimit=5
        server.1=zoo1.example.com:2888:3888
        server.2=zoo2.example.com:2888:3888
        server.3=zoo3.example.com:2888:3888
        其中,第一个端口(2888)用于集群内通信,第二个端口(3888)用于选举。
  3. 创建数据目录及配置文件

    • 在每台服务器上创建dataDir指定的目录,并在该目录下创建一个名为 myid 的文件,内容为该服务器在zoo.cfg中对应的ID(如1、2或3)。
  4. 启动ZooKeeper服务

    /usr/local/zookeeper-3.8.4/bin/zkServer.sh start

安装Kafka集群

在每台Kafka服务器上执行以下操作:

  1. 下载并解压Kafka

  2. 配置Kafka

    • 编辑config/server.properties文件,根据您的服务器IP和端口规划配置以下关键参数:
      • broker.id: 每个Broker的唯一标识,范围从0开始,依次为0、1、2。
      • listeners: Kafka监听的接口和协议,例如 PLAINTEXT://0.0.0.0:9092(监听所有网络接口的9092端口)。
      • log.dirs: Kafka日志存储路径,如 /var/lib/kafka.
      • zookeeper.connect: 指定ZooKeeper集群的连接字符串,包含所有ZooKeeper节点的地址和端口,例如 zookeeper1.example.com:2181,zookeeper2.example.com:2181,zookeeper3.example.com:2181.
  3. 启动Kafka服务

    /usr/local/kafka-3.7/bin/kafka-server-start.sh -daemon /usr/local/kafka-3.7/config/server.properties

验证集群

  1. 创建和测试主题

    • 使用Kafka自带的命令行工具(如kafka-topics.sh)在任意一台Kafka服务器上创建一个测试主题。
    • 启动一个生产者向该主题发送消息,再启动一个消费者从该主题消费消息,验证消息传递是否正常。

通过以上步骤,6台CentOS 9 Stream服务器上成功部署了一个由3台服务器组成的ZooKeeper集群和另一个由3台服务器组成的Kafka集群。记得根据实际环境调整配置文件中的IP地址、端口和路径等信息。

相关推荐

  1. kafka3.X安装(不使用zookeeper)

    2024-04-21 15:32:02       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-21 15:32:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-21 15:32:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-21 15:32:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-21 15:32:02       20 阅读

热门阅读

  1. k8s调度场景

    2024-04-21 15:32:02       12 阅读
  2. 状态模式(状态和行为分离)

    2024-04-21 15:32:02       13 阅读
  3. ChatGPT智能写作助手指导下的论文创作

    2024-04-21 15:32:02       13 阅读
  4. c#数据储存栈(stack)和堆(heap)的方式

    2024-04-21 15:32:02       14 阅读
  5. FineBi概论

    2024-04-21 15:32:02       13 阅读
  6. Axios(对AJAX封装和简化)

    2024-04-21 15:32:02       13 阅读
  7. Conmi的正确答案——ESP32获取MAC地址

    2024-04-21 15:32:02       15 阅读