01、Kafka ------ 下载、安装 ZooKeeper 和 Kafka

news2024/11/14 15:02:37

目录

  • Kafka是什么?
    • 安装 ZooKeeper
      • 下载
      • 安装
      • 启动 zookeeper 服务器端
      • 启动 zookeeper 的命令行客户端工具
    • 安装 Kafka
      • 下载
      • 安装
      • 启动 Kafka 服务器

Kafka是什么?

RabbitMQ的性能比ActiveMQ的性能有显著提升。

Kafka的性能比RabbitMQ的性能又有显著提升。

Kafka自称开源的、分布式事件(消息、记录)流框架。

Kafka官方文档,一会它说事件(Event)、一会又说消息、一会它又说记录(Record)。

RabbitMQ 有官方自带的图形界面,Kafka没有,所以用这个第三方的CMAK。

使用Kafka需要安装的软件及安装顺序:
ZooKeeper → Kafka → CMAK(图形界面管理工具)


安装 ZooKeeper

Kafka目前还依赖于ZooKeeper,因此在安装Kafka之前需要先安装、运行ZooKeeper

下载

zookeeper-3.8.3版本

1、登录ZooKeeper官网站点下载ZooKeeper最新发行版的压缩包,用最新的7-Zip解压下载得到的压缩包。
在这里插入图片描述

在这里插入图片描述

解压:
在这里插入图片描述

安装

2、将conf/zoo_sample.cfg文件复制一份、并重命名为zoo.cfg,放在同级目录下
在这里插入图片描述

打开zoo.cfg文件,将如下配置行(修改ZooKeeper的数据存储目录、ZooKeeper会自动创建该目录):

dataDir=/tmp/zookeeper

改为如下形式:(建议改成绝对路径)

dataDir=E:/install/ZooKeeper/workspace/zookeeper-data

在这里插入图片描述
(dataDir 是指定zookeeper的数据存储目录,因为zookeeper是要管理分布式应用的多个节点,这些节点的数据就存在这个dataDir 指定的地址目录里面。)
zookeeper-data 这个文件夹会在启动zookeeper服务器的时候自动生成的。

路径问题注意点:
(我这里是已经配置好环境变量再测试的了)
相对路径的情况:

如果改成这种 dataDir=…/zookeeper-data 相对路径的形式,那么在启动zookeeper服务器的时候会报错,
在这里插入图片描述

小黑窗输入 zkServer
在这里插入图片描述
绝对路径的情况:
成功创建zookeeper用来存放节点数据的文件夹
在这里插入图片描述
在这里插入图片描述

3、ZooKeeper需要两个环境变量:

- JAVA_HOME:ZooKeeper需要Java环境,因此用该环境变量指定JDK的安装路径。
- PATH:将bin目录(包含zkCli、zkEnv、zkServer命令)添加到PATH环境变量中

PATH:
在这里插入图片描述

JAVA_HOME:
在这里插入图片描述

启动 zookeeper 服务器端

4、执行如下命令即可使用zoo.cfg作为配置文件来启动ZooKeeper服务。

小黑窗输入命令: zkServer

在这里插入图片描述
默认端口:2181
在这里插入图片描述

启动 zookeeper 的命令行客户端工具

5、ZooKeeper服务端启动之后,可使用 zkCli(Linux下使用zkCli.sh命令)来查看节点状态,就是看zookeeper客户端(或者说命令行)是否连接zookeeper服务端成功。
运行如下命令:

小黑窗输入命令:zkCli -server 127.0.0.1:2181

再打开一个小黑窗
在这里插入图片描述

上面命令指定使用 zkCli 连接运行在 “127.0.0.1:2181” 的 ZooKeeper。

使用 zkCli 连接到 ZooKeeper服务器之后,可通过ls子命令查看ZooKeeper当前的节点。看如下命令及执行结果:
ls / :列出根路径下的所有节点
[zookeeper]

上面执行结果表明ZooKeeper当前只有一个zookeeper节点。

【备注】:zkCli 就是 ZooKeeper 提供的命令行客户端工具,可用于查看、添加、删除、修改节点等,可通过help子命令来获取该工具的帮助。

在这里插入图片描述



安装 Kafka

下载

1、登录官网下载Kafka压缩包,并解压下载得到的压缩包。

Kafka官网

在这里插入图片描述

Kafka 是用 Scala 语言写的,Scala 是一个Java虚拟机语言。
源码是用Scala语法写的,但是Scala它所编译生成出来的目标文件是class文件,这个class文件可以直接在Java虚拟机平台运行。

在这里插入图片描述

安装

2、Kafka需要两个环境变量:

- JAVA_HOME:Kafka需要Java环境,因此通过该环境变量指定JDK的安装路径。

- PATH:对于Linux平台,将Kafka解压路径下bin子目录添加到PATH环境中;
        对于Windows平台,将Kafka解压路径下bin\windows子目录添加到PATH环境中。

JDK 是一直都有的,这里只需要添加path路径

在这里插入图片描述

因为后面配置好后,小黑窗启动的时候出现这个问题:所以重新改了路径,先缩短路径长度

后面 反斜杠\ 改成 正斜杠/
在这里插入图片描述

3、打开config/server.properties配置文件,修改如下配置行(配置Kafka的数据存储目录):

log.dirs=/tmp/kafka-logs

改为如下形式

log.dirs=E:/install/kafka_2.13-3.6.1/kafka-data

——上面指定使用Kafka解压路径下kafka-data作为Kafka的数据存储目录(日志存储目录)

在这里插入图片描述

启动 Kafka 服务器

4、启动Kafka服务器。
请注意:启动Kafka服务器之前,先启动ZooKeeper服务器。然后执行如下命令:

kafka-server-start E:/install/kafka_2.13-3.6.1/config/server.properties

该命令的参数需要指定启动Kafka所用的配置文件,上面命令运行完成就代表了Kafka的第1个节点启动完成。

在这里插入图片描述
在这里插入图片描述
自动创建出这个 文件夹。这个文件夹就存放了kafka的日志文件,也就是数据文件。
在这里插入图片描述

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

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

相关文章

ngrok-内网穿透

一、访问官网下载相关的内容 Download (ngrok.com) linux或者windows可供选择,主要在于你的项目跑在什么地方 选择下载 二、获取Authtoken 点击右上角登录,没有号用谷歌账号登录即可跳转 三、在Windows进行内网穿透 下载打开 打开 运行在命令行中&am…

【42页动态规划学习笔记分享】动态规划核心原理详解及27道LeetCode相关经典题目汇总

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 《------往期经典推荐--…

【Spring】19 AOP介绍及实例详解

文章目录 1. 定义1)什么意思呢?2)如何解决呢? 2. 基本概念1)切面(Aspect)2)切点(Pointcut)3)通知(Advice)4)连…

【python入门】day17:模块化编程、math库常见函数

什么叫模块 模块的导入 导入所有:import 模块名称 导入指定:from 模块名称 import 函数/变量/类 python的math库 什么是math库 Python的math库是Python的内建库之一,它提供了许多数学函数,包括三角函数、对数函数、幂函数等&a…

迅为RK3588开发板使用 FFMpeg 进行推流

Debian/Ubuntu 系统使用以下命令安装 FFMpeg ,如下图所示: apt-get install ffmpeg 使用 ifconfig 查看开发板 ip 为 192.168.1.245 如下图所示: 使用 FFMpeg 推流一个 mp4 视频进行测试,作者将测试视频 test.mp4 放在了根目录下…

linuxnodejs 20.* 安装问题,version `GLIBCXX_3.4.26‘

背景 今天服务器被重置拉,nodejs 环境不存在,特意安装下nodejs,一访问官网,妈呀,居然到20版本拉!就尝试安装下最新版本! 过程 $ cd /opt $ curl -OL https://nodejs.org/dist/v20.10.0/node-v2…

c++语言基础18-开房门

题目描述 假设你手里有一串钥匙,这串钥匙上每把钥匙都有一个编号,对应着一个房门的编号。现给你一个房门编号,你需要判断是否能够打开该房门。 输入描述 测试数据共有多组。 第一行为一个整数 s,表示共有多少组测试数据。 每组第一…

Spring高手之路-Spring中Bean的五大作用域

目录 Singleton(单例):默认的作用域 Prototype(原型) Request(请求) Session(会话) Global Session(全局会话) 五大作用域范围对比 作用域…

[C#]基于deskew算法实现图像文本倾斜校正

【算法介绍】 让我们开始讨论Deskeweing算法的一般概念。我们的主要目标是将旋转的图像分成文本块,并确定它们的角度。为了让您详细了解我将使用的方法: 照常-将图像转换为灰度。应用轻微的模糊以减少图像中的噪点。现在,我们的目标是找到带…

【GoLang入门教程】Go语言几种标准库介绍(四)

编程语言的未来? 文章目录 编程语言的未来?前言几种库fmt库 (格式化操作)关键函数:示例 Go库标准库第三方库示例 html库(HTML 转义及模板系统)主要功能:示例 总结专栏集锦写在最后 前言 上一篇,我们介绍了debug、enco…

C/C++动态内存分配 malloc、new、vector(简单讲述)

路虽远,行则将至 事虽难,做则必成 今天来主要讲C中动态内存分配 其中会穿插一些C的内容以及两者的比较 如果对C语言中的动态内存分配还不够理解的同学 可以看看我之前的博客:C语言动态分配 在讲解C的动态内存分配之前 我们先讲一下C内存模型 &#xff1…

国家信息安全水平等级考试NISP二级题目卷③(包含答案)

国家信息安全水平等级考试NISP二级题目卷(三) 国家信息安全水平等级考试NISP二级题目卷(三)需要报考咨询可以私信博主! 前言: 国家信息安全水平考试(NISP)二级,被称为校园版”CISP”,由中国信息…

全解析阿里云Alibaba Cloud Linux镜像操作系统

Alibaba Cloud Linux是基于龙蜥社区OpenAnolis龙蜥操作系统Anolis OS的阿里云发行版,针对阿里云服务器ECS做了大量深度优化,Alibaba Cloud Linux由阿里云官方免费提供长期支持和维护LTS,Alibaba Cloud Linux完全兼容CentOS/RHEL生态和操作方式…

78 Python开发-多线程FuzzWaf异或免杀爆破

这里写目录标题 本课知识点:学习目的:演示案例:Python开发-简单多线程技术实现脚本Python开发-利用FTP模块实现协议爆破脚本Python开发-配合Fuzz实现免杀异或Shell脚本 涉及资源: 本课知识点: 协议模块使用,Request爬虫技术,简易多线程技术,…

Postman 安装及使用

文章目录 1. 安装 Postman1)下载2)安装3)注册用户4)登陆完成 2. 创建和发送请求1)发送一个 GET 请求2)发送一个 POST 请求 3. 查看响应4. 使用环境变量和变量5. 高级功能和测试6. 导出和分享请求总结 Postm…

IDS 和 IPS:了解异同

IDS 和 IPS 是至关重要的网络安全技术,经常被混淆或互换使用。那么,IDS 和 IPS 之间有什么区别,哪一种是最适合您组织需求的选择呢? 什么是IDS(入侵检测系统)? 入侵检测系统 (IDS) 是一种网络…

git在本地创建dev分支并和远程的dev分支关联起来

文章目录 git在本地创建dev分支并和远程的dev分支关联起来1. 使用git命令2. 使用idea2.1 先删除上面建的本地分支dev2.2 通过idea建dev分支并和远程dev分支关联 3. 查看本地分支和远程分支的关系 git在本地创建dev分支并和远程的dev分支关联起来 1. 使用git命令 git checkout…

华芯微特|MCU之TIMER输入捕获

引言 华芯微特公司SWM系列单片机提供的TIMER个数和功能有些微差别,为了让您更加简单的使用这一功能,下面小编将以SWM190为例,我们今天详细讲解一下TIMER的输入捕获功能。 TIMER输入捕获 一、TIMER定时器之输入捕获功能 我们今天详细讲解一下…

一篇文章学会Linux

一篇文章学会Linux 声明:以下内容均为我个人的理解,如果发现错误或者疑问可以联系我共同探讨 简介 Linux Linux是一种自由和开放源码的类UNIX操作系统。该操作系统的内核由林纳斯托瓦兹在1991年10月5日首次发布,在加上用户空间的应用程序…

【JUC】Volatile关键字+CPU/JVM底层原理

Volatile关键字 volatile内存语义 1.当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值立即刷新回主内存中。 2.当读一个volatile变量时,JMM会把该线程对应的本地内存设置为无效,直接从主内存中读取共享变量 所以volatile…