「Kafka」Kafka单机和集群安装(二)

「Kafka」Kafka单机和集群安装(二)

  • 一、单机启动
    • 1. 下载安装Kafka
    • 2. 启动ZooKeeper
    • 2. 启动Kafka
  • 二 、集群启动
    • 1. 安装zookeeper
    • 2. 安装kakfa
    • 3. 封装启动脚本

一、单机启动

1. 下载安装Kafka

阿里云下载地址:Kafka阿里云镜像站,官方下载地址:Kafka官网下载地址,下载kafka_2.13-3.7.0.tgz,下载后解压到你选择的目录

  • 这里的3.7.0,是Kafka软件的版本。截至到日期,Kafka最新版本为3.7.0。
  • 2.13是对应的Scala开发语言版本。Scala2.13和Java8是兼容的,所以可以直接使用。
  • tgz是一种linux系统中常见的压缩文件格式,类似与windows系统的zip和rar格式。所以Windows环境中可以直接使用压缩工具进行解压缩。
    在这里插入图片描述
  • 为了方便将目录改为Kafka
  • 目录结构如下所示
    在这里插入图片描述

在这里插入图片描述

2. 启动ZooKeeper

当前版本Kafka软件内部依然依赖ZooKeeper进行多节点协调调度,所以启动Kafka软件之前,需要先启动ZooKeeper软件。不过因为Kafka软件本身内置了ZooKeeper软件,所以无需额外安装ZooKeeper软件,直接调用脚本命令启动即可。具体操作步骤如下:

  • 进入Kafka解压缩文件夹的config目录,修改zookeeper.properties配置文件
# the directory where the snapshot is stored.
# 修改dataDir配置,用于设置ZooKeeper数据存储位置,该路径如果不存在会自动创建。
dataDir=E:/Kafka/data/zk
  • 进入\bin\windows目录下启动zookeeper
# 启动命令
zookeeper-server-start.bat ../../config/zookeeper.properties

在这里插入图片描述

  • 为了方便也可以在kafka目录下创建启动脚本zk.bat,下次启动直接点击zk.bat即可
# 调用启动命令,且同时指定配置文件。
call bin/windows/zookeeper-server-start.bat config/zookeeper.properties

2. 启动Kafka

  • 进入Kafka解压缩文件夹的config目录,修改server.properties配置文件
# If not set, it uses the value for "listeners".
# 客户端访问Kafka服务器时,默认连接的服务为本机的端口9092,如果想要改变,可以修改如下配置
# 此处我们不做任何改变,默认即可
#advertised.listeners=PLAINTEXT://your.host.name:9092# A comma separated list of directories under which to store log files
# 配置Kafka数据的存放位置,如果文件目录不存在,会自动生成。
log.dirs=E:/Kafka/data/kafka
  1. 为了操作方便,也可以在kafka解压缩后的目录中,创建脚本文件kfk.cmd
call bin/windows/kafka-server-start.bat config/server.properties

二 、集群启动

1. 安装zookeeper

  1. 在磁盘根目录创建文件夹cluster,文件夹名称不要太长
  2. 将全新的文件包放入到cluster目录下,并命名为zookeeper
  3. 修改config/zookeeper.properties文件
# 日志目录
dataDir=E:/Kafka/cluster/zookeeper/data
# ZooKeeper默认端口为2181
clientPort=2181

2. 安装kakfa

  1. 将zookeeper目录复制一份到cluster目录下,并且命名为Kafka-node1
  2. 修改config/server.properties配置文件
# kafka节点数字标识,集群内具有唯一性
broker.id=1
# 监听器 9091为本地端口,如果冲突,请重新指定
listeners=PLAINTEXT://:9091
# 数据文件路径,如果不存在,会自动创建
log.dirs=E:/Kafka/cluster/Kafka-node1/data
# ZooKeeper软件连接地址,2181为默认的ZK端口号 /kafka 为ZK的管理节点
zookeeper.connect=localhost:2181/kafka
  1. 将kafka-node1文件夹复制两份,改名为kafka-node2,kafka-node3
  2. 分别修改kafka-node2,kafka-node3文件夹中的配置文件server.properties
    将文件内容中的broker.id=1分别改为broker.id=2,broker.id=3
    将文件内容中的9091分别改为9092,9093(如果端口冲突,请重新设置)
    将文件内容中的kafka-node-1分别改为kafka-node-2,kafka-node-3

3. 封装启动脚本

因为Kafka启动前,必须先启动ZooKeeper,并且Kafka集群中有多个节点需要启动,所以启动过程比较繁琐,这里我们将启动的指令进行封装

在这里插入图片描述

  1. 在zookeeper文件夹下创建zk.bat批处理文件
  2. 在zk.cmd文件中添加内容
# 添加启动命令
call bin/windows/zookeeper-server-start.bat config/zookeeper.properties
  1. 在kafka-node-1,kafka-node-2,kafka-node-3文件夹下分别创建kfk.bat批处理文件
    在这里插入图片描述
  2. 在kfk.bat文件中添加内容
# 添加启动命令
call bin/windows/kafka-server-start.bat config/server.properties
  1. 在cluster文件夹下创建cluster.cmd批处理文件,用于启动kafka集群
    在这里插入图片描述

  2. 在cluster.cmd文件中添加内容

cd zookeeper
start zk.bat
ping 127.0.0.1 -n 10 >nul
cd ../kafka-node1
start kfk.bat
cd ../kafka-node2
start kfk.bat
cd ../kafka-node3
start kfk.bat
  1. 在cluster文件夹下创建cluster-clear.cmd批处理文件,用于清理和重置kafka数据
    在这里插入图片描述

  2. 在cluster-clear.cmd文件中添加内容

cd zookeeper
rd /s /q data
cd ../kafka-node1
rd /s /q data
cd ../kafka-node2
rd /s /q data
cd ../kafka-node3
rd /s /q data
  1. 双击执行cluster.cmd文件,启动Kafka集群

集群启动命令后,会打开多个黑窗口,每一个窗口都是一个kafka服务,请不要关闭,一旦关闭,对应的kafka服务就停止了。如果启动过程报错,主要是因为zookeeper和kafka的同步问题,请先执行cluster-clear.cmd文件,再执行cluster.cmd文件即可。

在这里插入图片描述

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

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

相关文章

AI大模型探索之路-训练篇5:大语言模型预训练数据准备-词元化

系列文章目录🚩 AI大模型探索之路-训练篇1:大语言模型微调基础认知 AI大模型探索之路-训练篇2:大语言模型预训练基础认知 AI大模型探索之路-训练篇3:大语言模型全景解读 AI大模型探索之路-训练篇4:大语言模型训练数据…

全面解析平台工程与 DevOps 的区别与联系

平台工程的概念非常流行,但很多开发人员仍然不清楚它是如何实际运作的,这是非常正常的。 平台工程是与 DevOps 并行吗?还是可以相互替代?或者 DevOps 和平台工程是两个完全不同的概念? 一种比较容易将两者区分开来的方…

mysql中join内外连接查询例子

文章目录 join关键字概要举例using 与 on 区别 join关键字 在MySQL中,JOIN 是一种用于将两个或多个表中的行联合起来的操作。 连接(join)就是将一张表中的行按照某个条件(连接条件)与另一张表中的行连接起来形成一个新…

泰坦尼克号乘客生存情况预测分析2

泰坦尼克号乘客生存情况预测分析1 泰坦尼克号乘客生存情况预测分析2 泰坦尼克号乘客生存情况预测分析3 泰坦尼克号乘客生存情况预测分析总 背景描述 Titanic数据集在数据分析领域是十分经典的数据集,非常适合刚入门的小伙伴进行学习! 泰坦尼克号轮船的…

react 基础学习笔记一

1、jsx语法过程 jsx使用react构造组件,通过bable进行编译成js对象,在用ReactDom.render()渲染成DOM元素,最后再插入页面的过程。 2、创建组件 组件的定义:将公用的代码组装成一个独立的文件,保持代码独立性&#xff0…

如何将图片压缩100k?几个方法帮你解决

很多平台为了保证用户体验,会限制我们上传图片的大小,所以我们在社交平台分享图片的时候,就会看有些要求为100kb的字样,那么我们怎么把一些过大的图片压缩100kb大小呢?试试下面介绍的这几个方法吧。 在工具栏中选择【…

每天五分钟深度学习:如何理解梯度下降算法可以逼近全局最小值?

本文重点 上节课程中,我们已经知道了逻辑回归的代价函数J。要想最小化代价函数,我们需要使用梯度下降算法。 梯度下降算法地直观理解: 为了可视化,我们假设w和b都是单一实数,实际上,w可以是更高地维度。 代价函数J是在水平轴w和b上的曲面,因此曲面的高度就是J(w,b)在…

深入理解分布式事务① ---->分布式事务基础(四大特性、五大类型、本地事务、MySQL并发事务问题、MySQL事务隔离级别命令设置)详解

目录 深入理解分布式事务① ---->分布式事务基础(四大特性、五大类型、本地事务、MySQL并发事务问题、MySQL事务隔离级别命令设置)详解事务的基本概念1、什么是事务?2、事务的四大特性2-1:原子性(Atomic&#xff09…

创建electron,解决包清理的问题,解决镜像源卡住下载时间长

我的电脑用户名是Anyphasy,我的node.js安装在D:\developp\nodejss18.18.0 使用npm config get prefix查看node.js安装路径 npm config get prefix 创建electron 创建package.json文件,它里面记载了你的electron版本,项目描述,以及启动命令等信息 npm init -y 先查看你自己的…

什么样的内外网文档摆渡,可以实现安全高效传输?

内外网文档摆渡通常指的是在内网(公司或组织的内部网络)和外网(如互联网)之间安全地传输文件的过程。这个过程需要特别注意安全性,因为内网往往包含敏感数据,直接连接内网和外网可能会带来安全风险。因此会…

PyCharm 中的特殊标记

在使用 PyCharm 开发 Python 项目的时候,经常会有一些特殊的标记,有些是 IDE 提示的代码规范,有些则为了方便查找而自定义的标记。 我在之前写过一些关于异常捕获的文章:Python3 PyCharm 捕获异常报 Too broad exception clause …

服务器数据恢复—Storwize V3700存储数据恢复案例

服务器存储数据恢复环境: 某品牌Storwize V3700存储,10块硬盘组建了2组Mdisk加入到一个存储池中,一共创建了1个通用卷来存放数据,主要数据为oracle数据库。 服务器存储故障: 其中一组Mdisk中两块磁盘出现故障离线&…