基于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

    • 访问Apache Kafka官网(https://kafka.apache.org/downloads)下载最新稳定版的Kafka压缩包。
      sudo wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
    • 使用wget命令下载到服务器上,然后使用tar命令解压到指定目录,如 /usr/local/kafka-3.7
  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地址、端口和路径等信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/624344.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PaddleOCR训练自己模型(2)----参数配置及训练

一、介绍 paddleocr分为文字定位(Det)和文字识别(Rec)两个部分 二、定位模型训练 (1)Det预训练模型下载:https://paddleocr.bj.bcebos.com/PP-OCRv4/chinese/ch_PP-OCRv4_det_train.tar (2)下载完之后,…

案例研究|众乐邦将MeterSphere持续测试平台融入DevOps流水线

众乐邦网络科技有限公司(以下简称为“众乐邦”)是一家企业服务公司。其旗下的众乐邦灵活用工数字化薪税管理平台(以下简称为灵活用工管理平台),以财税服务视角切入灵活用工场景,连接企业、灵活就业者和监管…

家居网购项目(手写分页)

文章目录 1.后台管理—分页显示1.程序框架图2.编写数据模型Page.java 3.编写dao层1.修改FurnDao增加方法 2.修改FurnDaoImpl增加方法 3.单元测试FurnDaoTest 4.编写service层1.修改FurnService增加方法 2.修改FurnServiceImpl增加方法3.单元测试FurnServiceTest 5.编写DataUtil…

pytorch 今日小知识3——nn.MaxPool3d 、nn.AdaptiveAvgPool3d、nn.ModuleList

MaxPool3d — PyTorch 2.2 documentation 假设输入维度(1,2,3,4,4) maxpool torch.nn.MaxPool3d(kernel_size(2, 2, 2), stride(2, 2, 2), padding(1, 0, 0))F 维的 kernel_size 为 2,说明在 F 维的覆盖的 frame 数为 2,也就是…

什么是上位机?入门指南

什么是上位机? 上位机(SCADA,Supervisory Control and Data Acquisition)是一种软件系统,用于监控和控制工业过程中的设备。它通常与传感器、执行器和其他自动化设备一起工作,以实时地监视过程状态、收集数…

JavaScript 高性能编程 —— 加载和运行

JavaScript 在浏览器中的性能,可认为是开发者所要面对的最重要的可用性问题。此问题因 JavaScript 的阻塞特征而复杂,也就是说,当 JavaScript 运行时其他的事情不能被浏览器处理。 事实上,大多数浏览 器使用单进程处理 UI 更新和 JavaScript 运行等多个任务,而同一时间只能…

正在海外乘风破浪的扫地机器人,手握怎样的发展利器?

“懒人经济”能造就多大的市场,可以从扫地机器人行业的发展窥见。 据国际数据分析机构捷孚凯报告,截至2022年底,我国扫地机器人已占据50%以上的海外市场份额。其中,科沃斯、石头科技等头部企业成为出海的“主力军”。 以石头科技…

C语言【整数与浮点数的存储区别】

例题引入 #include <stdio.h> int main() {int n 9;float* pFloat (float*)&n;printf("n的值为&#xff1a;%d\n",n);printf("*pFloat的值为&#xff1a;%f\n",*pFloat);*pFloat 9.0;printf("num的值为&#xff1a;%d\n",n);print…

【十一】MyBatis Plus 原理分析

MyBatis Plus 原理分析 摘要 Java EE开发中必不可少ORM框架&#xff0c;目前行业里最流行的orm框架非Mybatis莫属了&#xff0c;而Mybatis框架本身没有提供api实现&#xff0c;所以市面上推出了Mybatis plus系列框架&#xff0c;plus版是mybatis增强工具&#xff0c;用于简化My…

卷积神经网络的结构组成与解释(详细介绍)

文章目录 前言 1、卷积层 2、激活层 3、BN层 4、池化层 5、FC层&#xff08;全连接层&#xff09; 6、损失层 7、Dropout层 8、优化器 9、学习率 10、卷积神经网络的常见结构 前言 卷积神经网络是以卷积层为主的深层网络结构&#xff0c;网络结构包括有卷积层、激活层、BN层、…

Redis中的事务(二)

事务 事务的实现 执行事务 当一个处于事务状态的客户端向服务器发送EXEC命令时&#xff0c;这个EXEC命令将立即被服务器执行&#xff0c;服务器会遍历这个客户端的事务队列&#xff0c;执行队列中保存的所有命令&#xff0c;最后将执行命令所得的结果全部返回给客户端。 例…

Linux之bpfjit(2)使用分析和mini-tcpdump实现

Linux之bpfjit(2)使用分析和mini-tcpdump实现 Author: Once Day Date: 2024年4月13日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可以参考专栏&#xff1a;…