基于zookeeper安装Kafka集群

本文详细指导如何在6台CentOS9Stream虚拟机上,通过VMware部署和配置ZooKeeper与Kafka集群,包括安装Java、规划集群架构、配置参数和验证流程。
摘要由CSDN通过智能技术生成

操作系统: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地址、端口和路径等信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值