基于zookeeper安装Kafka集群

news2024/11/27 6:26:27

操作系统: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.coloradmin.cn/o/1599747.html

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

相关文章

【安全】查杀linux挖矿病毒 kswapd0

中毒现象 高cpu占用,使用top命令查看cpu使用率长时间50%以上,cpu占用异常的进程八成就是挖矿病毒进程 此病毒隐藏了自己,top命令无法查看到挖矿病毒进程,可通过sysdig命令找到隐藏进程 安装sysdig curl -s https://s3.amazonaw…

外卖小程序实战-接单后小票机自动打印订单

1、导入小票机的sdk https://www.feieyun.com/api/API-JAVA.zip public static String addprinter(String snlist){//通过POST请求,发送打印信息到服务器RequestConfig requestConfig RequestConfig.custom() .setSocketTimeout(30000)//读取超时 .setConnectTi…

文件读写异常处理(day25)

题目一:文件读写异常处理 要求: 编写一个Java程序,该程序尝试读取一个名为example.txt的文件,并逐行打印其内容到控制台。 如果文件example.txt不存在,程序应捕获FileNotFoundException异常,并输出相应的…

ActiveMQ 任意文件上传漏洞复现

一、使用弱口令登陆 ​ 访问 http://ip:8161/admin/ 进入admin登陆页面,使用弱口令登陆,账号密码皆为 admin,登陆成功后,headers中会出现验证信息 ​ 如: Authorization: Basic YWRtaW46YWRtaW4 # 二、利用PUT协议上…

Docker 入门介绍及简单使用

Docker 的简单介绍 中文官网:Docker中文网 官网 英文官网:Docker: Accelerated Container Application Development Docker 是一个开源的应用容器引擎,它允许开发者打包应用及其依赖包到一个可移植的容器中,然后发布到任何流行的 …

【Java开发指南 | 第八篇】Java变量、构造方法、创建对象

读者可订阅专栏:Java开发指南 |【CSDN秋说】 文章目录 Java变量构造方法创建对象 Java变量 在Java中,变量用于存储数据值。它们是程序中用于保存信息的一种基本方式。变量在程序执行过程中可以被赋予不同的值,并且这些值可以在程序的不同部分…

使用Python模仿文件行为

在Python中,你可以通过文件操作函数(如open()函数)以及模拟输入输出流的库(如io模块)来模拟文件行为。下面是一些示例,展示了如何使用这些工具在Python中模拟文件行为。 1、问题背景 在编写一个脚本时&…

轮胎行业EDI:Tigar 轮胎EDI项目案例

Tigar 轮胎是一家塞尔维亚轮胎制造公司,自2007年开始,被轮胎制造商米其林持有。 Tigar通过EDI来传输与供应商之间的业务单据,优化业务流程。本文将从EDI需求概览、如何基于知行之桥EDI系统实现与Tigar的EDI对接以及项目回顾这三个部分为大家展…

Docker部署MongoDB数据库

文章目录 官网地址docker 网络部署 MongoDB部署 mongo-expressdocker-compose.ymlMongoDB shell 官网地址 https://www.mongodb.com/zh-cn docker 网络 # 创建 mongo_network 网络 docker network create mongo_network # 查看网络 docker network list # 容器连接到 mongo_…

AI智能分析网关V4平台告警数据清理方法:自动清理与手动清理

TSINGSEE青犀智能分析网关V4属于高性能、低功耗的软硬一体AI边缘计算硬件设备,目前拥有3种型号(8路/16路/32路),支持Caffe/DarkNet/TensorFlow/PyTorch/MXNet/ONNX/PaddlePaddle等主流深度学习框架。硬件内部署了近40种AI算法模型…

C语言中的结构体:从定义到传递

前言 结构体是C语言中一种重要的数据类型,它允许我们将不同类型的数据组合成一个整体,并以自定义的方式进行操作。通过结构体,我们可以更加灵活地管理和处理复杂的数据结构,从而提高程序的可读性和可维护性。本篇博客将从结构体的…

allure2教程-1-环境搭建

领取资料,咨询答疑,请➕wei: June__Go 自动化测试执行完成后我们需要展示给其他人看,这就要有自动化测试报告了。复杂的测试报告当然可以自己代码实现,但用pytest-html或allure基本也能满足我们生成测试报告的要求了。本小节介绍…

Rustdesk如何编译代码实现安装后,不会在右下角出现托盘图标

环境: Rustdesk1.1.9 问题描述: Rustdesk如何编译代码实现安装后,不会在右下角出现托盘图标 解决方案: 安装后只有自定义进程图标 详细方案,有需要私聊

Python及软件测试方面的总结的技巧

目录 一.Python (一)输入pip安装包时出现Fatal error in launcher错误 (二)如何使用清华镜像安装库 二.软件测试 一.Python (一)输入pip安装包时出现Fatal error in launcher错误 解决方法&#xff1a…

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

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

简约风好看的个人主页源码

效果图 PC端 移动端 源代码 index.html &#xfeff;<html lang"en"><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&quo…

全网短剧搜索源码+短剧API接口 短剧下载 热门短剧 全开源可二开

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 pc端h5手机端全网短剧搜索前端源码分享 内含7000短剧资源(不支持在线播放&#xff09; 搜索API接口&#xff1a;文件内查看 全部短剧API接口&#xff1a;文件内查看 每日更新API接…

48.HarmonyOS鸿蒙系统 App(ArkUI)常用组件的使用

48.HarmonyOS鸿蒙系统 App(ArkUI)常用组件的使用 按钮触发事件 toast信息提示 单选按钮 复选框 切换按钮&#xff0c;开关按钮 进度条 textbox,textinput,TextArea文本输入框 气泡提示 import prompt from ohos.prompt; import promptAction from ohos.promptAction; …

DC-7渗透测试复现

DC-7渗透测试复现 目的&#xff1a; 获取最高权限以及flag 过程&#xff1a; 信息打点--SSH- 命令执行反弹shell-计时任务提权 环境&#xff1a; 攻击机&#xff1a;kali(192.168.85.137) 靶机&#xff1a;DC_3(192.168.85.139) 复现&#xff1a; 一.信息收集 nmap -s…

阿里云安全证书到期了,有证书的情况下如何重新续期

文章目录 前言零、阿里云使用证书说明一、如何看安全证书是否到期&#xff08;以百度为例&#xff09;1.点击链接旁边的按钮2.点击【连接是安全的】3.点击【证书有效】 4. 查看证书二、更换操作1.Digicert 和Digicert pro的区别2.在你购买证书后创建证书3. 填下面的域名 4. 验证…