基于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.mzph.cn/news/821449.shtml

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

相关文章

【探索人工智能】我与讯飞星火认知大模型的对话

文章目录 讯飞星火认知大模型的地址概要讯飞星火认知大模型的发展历程讯飞星火认知大模型的主页利用讯飞星火大模型解决一些基本的数学问题讯飞星火认知大模型与OpenAI,ChatGPT没有关系!让讯飞星火认知大模型编写传奇代码hello world小结 讯飞星火认知大模型的地址 …

文献速递:深度学习胰腺癌诊断--胰腺癌在CT扫描中通过深度学习检测:一项全国性的基于人群的研究

Title 题目 Pancreatic Cancer Detection on CT Scans with Deep Learning: A Nationwide Population-based Study 胰腺癌在CT扫描中通过深度学习检测:一项全国性的基于人群的研究 01 文献速递介绍 胰腺癌(PC)的五年生存率是所有癌症中…

【蓝桥杯嵌入式】串口通信与RTC时钟

【蓝桥杯嵌入式】串口通信与RTC时钟 串口通信cubemx配置串口通信程序设计 RTC时钟cubemx配置程序设计 串口通信 cubemx配置 打开串口通信,并配置波特率为9600 打开串口中断 重定义串口接收与发送引脚,默认是PC4,PC5,需要改为P…

运输问题的中转或者转运问题

1、这类问题,不好理解,做个笔记,记录一下。 2、可以参考一下: https://blog.csdn.net/YUNCHOUSHUO/article/details/121660675?spm1001.2014.3001.5506 这个csdn写的还是不错的,推荐。 或者,可以参考 …

网络安全学习路线-超详细

零基础小白,到就业!入门到入土的网安学习路线! 在各大平台搜的网安学习路线都太粗略了。。。。看不下去了! 建议的学习顺序: 一、网络安全学习普法(心里有个数,要进去坐几年!&#x…

OpenAI宣布GPT-4-Turbo全面升级,GPT-4 Turbo 新增视觉理解能力,可同时处理文本和图像信息

OpenAI宣布GPT-4-Turbo全面升级,GPT-4 Turbo with Vision新增视觉理解能力,可同时处理文本和图像信息,极大简化了开发流程。 OpenAI宣布GPT-4 Turbo全面升级!根据官方说法,这一波 GPT 的升级包括: 更长的上…

VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了

前言 Visual Studio Code 是一个轻量级功能强大的源代码编辑器,支持语法高亮、代码自动补全(又称 IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和 Git 版本控制系统。适用于 Windows、macOS 和 Linux。它内置了对…

Open3D 体素滤波(30)

Open3D 体素滤波(30) 一、算法介绍二、算法实现1.代码2.效果一、算法介绍 体素滤波(Voxel Grid Filtering)是一种常用的点云滤波算法,用于对点云数据进行下采样(降低数据密度)以及去除噪声。该算法将点云数据划分为规则的体素网格,然后在每个体素中选择一个代表性点作为…

17.牛客---栈的压入弹出(Java版)

题目链接: https://www.nowcoder.com/practice/d77d11405cc7470d82554cb392585106?tpId13&tqId11174&ru/exam/oj 题解: 代码: 测试: 注意 判断栈是否为空必须在前!不然会空指针异常

用于可观察性的 Elastic AI 助手摆脱了 Kibana!

作者:Jeff Vestal 通过 Elastic AI Assistant for Observability API 将 AI 支持的可观察性引入你的日常工具。 注意:下面描述的 API 目前正在开发中,并且没有文档记录,因此不受支持。请将其视为展望性博客。不能保证功能会发布。…

【多模态检索】Coarse-to-Fine Visual Representation

快手文本视频多模态检索论文 论文:Towards Efficient and Effective Text-to-Video Retrieval with Coarse-to-Fine Visual Representation Learning 链接:https://arxiv.org/abs/2401.00701 摘要 近些年,基于CLIP的text-to-video检索方法…

openstack修改实例名称但是gnocchi监控数据中实例名称没有变更的问题处理

文章目录 一、问题描述二、调研过程1、变更实例名称2、查看grafana中的监控数据3、libvirt服务中的xml文件4、现有的监控数据流转架构 总结 一、问题描述 openstack修改实例名称但是gnocchi监控数据中实例名称没有变更的问题处理。 通过修改实例名称的功能修改了实例名称&…

自动化测试常见的三大问题及解决方案

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

【Entity Framework】你必须要了解EF中数据查询之数据加载

【Entity Framework】你必须要了解EF中数据查询之数据加载 文章目录 【Entity Framework】你必须要了解EF中数据查询之数据加载一、概述二、预先加载2.1 包含多个层级2.2 经过筛选的包含 三、显示加载3.1查询关联实体 四、延时加载4.1 不使用代理进行延迟加载 一、概述 Entity…

平板拖把头建模

没找到合适的配件,只能自己做了。 difference(){union(){cylinder(11.5,10,10,$fn365);translate([-10,0,0])cube([20,16,11.5]);rotate([0,90,0])translate([-11.5/2,16-3-2,-18])cylinder(2088,3,3,$fn365);}translate([0,0,-1])cylinder(13,2.5,2.5,$fn365); }

飞腾UEFI电源控制选择代码解析

飞腾UEFI电源控制选择代码解析 CPLD 处理方式EC 处理方式注:本文以飞腾UEFI edk-code-4.2.0版本进行说明,如果有朋友需要借鉴,请使用该版本代码。 以D2000打工工具为例,下图打包工具中有选择主板电源管理方式,这里可以选择CPLD、EC、和SE,其中SE代表为X100控制上下电时序…

arm中模/数转换器工作原理以及I2C工作原理

ADC介绍 什么是ADC ADC就是模拟到数字转换器(Analog-to-Digital Converter)的缩写。 它是一种电子设备或模块,S3C2440内部拥有一个ADC外设。用于将连续变化的模拟信号转换为离散的数字信号,以便数字系统(如微处理器、微控制器等)能够对其进行处理和分析。 模拟信号:一…

用Gold-yolo模块改进yolov8模型

gold-yolo论文: https://arxiv.org/pdf/2309.11331.pdf gold-yolo代码: https://github.com/huawei-noah/Efficient-Computing/tree/master/Detection/Gold-YOLO 一 gold模块简介 Gold-Yolo是华为诺亚方舟实验室2023年发布的工作,主要优化检…

护网行动 | 蓝队应急响应流程概述

了解蓝队应急响应的流程 应急响应通常是指为了应对各种意外事件发生前所做的准备,以及在意外事件发生后所采取的措施。 网络安全应急响应是指对已经发生或可能发送的安全事件进行监控、分析、协调、处理、保护资产安全。 网络安全应急响应主要是为了让人们对网络安全…

【深度学习】执行wandb sync同步命令报错wandb: Network error (SSLError), entering retry loop

执行wandb sync同步命令报错wandb: Network error (SSLError), entering retry loop 在代码中设置wandb offline的命令 os.environ["WANDB_API_KEY"] "API keys" os.environ["WANDB_MODE"] "offline"日志文件生成后,使…