上手第一关,手把手教你安装kafka与可视化工具kafka-eagle


在这里插入图片描述
终于又开新专栏啦(其实是填坑),相信很多同学对kafka都有一定的了解了,我们以前在RabbitMQ的选型中,也提到过两者的对比,那么今天我们就正式开始Kafka的学习吧,老规矩,先来一篇手把手安装教程,因为后续主要是用于自身学习,所以还是以windows的安装为例

📕作者简介:战斧,从事金融IT行业,有着多年一线开发、架构经验;爱好广泛,乐于分享,致力于创作更多高质量内容
📗本文收录于 kafka 专栏,有需要者,可直接订阅专栏实时获取更新
📘高质量专栏 云原生、RabbitMQ、Spring全家桶 等仍在更新,欢迎指导
📙Zookeeper Redis dubbo docker netty等诸多框架,以及架构与分布式专题即将上线,敬请期待


一、环境与下载

在进行后续步骤前需要保证环境中已经安装并配置了JDK,存在JDK后,再进行kafka的下载,

我们可以通过kafka其官网:https://kafka.apache.org/downloads 来进行下载,目前的发布版本为3.5.1,且推荐的Scala版本2.13,那我们此次就用这个版本。

在这里插入图片描述
当然,笔者也知道很多小伙伴打不开网页,所以笔者也把这份包给上传上来了(如果没被CSDN下架的话),点此下载

二、安装

解压后请务必将其放在目录较浅的位置,否则在后续执行命令时可能会提示输入行太长,如下,我们不仅将其解压后的文件直接放在E盘根目录,而且缩写了其名字。

此时我们来到它目录下的bin目录,bin目录本级存的是在linux下的运行脚本,其下还有个windows子目录
在这里插入图片描述

在该windos目录下,就是windows使用的批处理脚本了

在这里插入图片描述

我们都知道 kafka 的运行需要 Zookeeper ,但是不需要我们额外安装,其本身就包含了Zookeeper的服务


三、启动

启动Kafka有两个必要的服务:ZookeeperKafka 本身。

1. 启动ZK

在Kafka的根目录中,进入config目录。您将看到一个名为zookeeper.properties的文件。
在这里插入图片描述

使用文本编辑器打开该文件并更改dataDir的值,即ZK数据的存储位置,例如:

在这里插入图片描述

在保存过后,我们回到ZK启动脚本的目录下,并在目录位置输入cmd,回车进入命令行

在这里插入图片描述

然后在命令行中输入 以下命令来启动 ZK

zookeeper-server-start.bat ../../config/zookeeper.properties

在这里插入图片描述

如果没有报错就是启动成功了。

2. 启动Kafka

在Kafka的根目录中,进入config目录,您将看到一个名为server.properties的文件。

在这里插入图片描述

使用文本编辑器打开该文件并更改以下参数的值:

broker.id:每台Kafka服务器需要一个唯一的broker.id值。
listeners:Kafka默认使用9092端口,可以更改此端口。
log.dirs:Kafka默认使用/tmp/kafka-logs作为数据存储目录,可以更改此目录,我们提前创建目录,然后设置该目录为日志目录,如下:

在这里插入图片描述

保存并关闭文件后,回到目录E:\kafka\bin\windows,使用以下命令启动Kafka服务器

kafka-server-start.bat ../../config/server.properties

Kafka启动后,您将看到以下输出:
在这里插入图片描述

至此,说明kafka的启用就完成了。

四、可视化工具 EFAK(kafka-eagle)

同我们在前面讲解的ZK安装一样,kafka本身也没有提供可视化页面,但是市面上有很多开源的可视化工具,我们接下来就讲讲他们的安装及使用,我们选取其中的 EFAK来说, 请注意,在安装EFAK之前,你至少需要安装了JDK、kafka、mysql的环境后,再进行后续操作

1. kafka开启JMX

JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户能够在任何Java应用程序中使用这些代理和服务实现管理。用人话说,就是对外暴露更多数据,方便某些监控之类的插件来使用

我们先要打开刚刚的kafka启动脚本 kafka-server-start.bat,如下:

在这里插入图片描述

在脚本中找到一个会执行到的位置,设置JMX的端口,并保存如下:

在这里插入图片描述

做完该步骤后,记得重启kafka

2. 下载及配置

我们打开它的官网:http://www.kafka-eagle.org/,如下:

在这里插入图片描述

直接下载其最新版,或者使用笔者上传的压缩包 https://download.csdn.net/download/u011709538/88381629

在这里插入图片描述
当我们将其解压缩后,需要注意到,如果使用其默认的启动脚本,我们还需要维护两个环境变量JAVA_HOMEKE_HOME,前者不必多说,后者为EFAK的安装根目录,在本例中为

E:\efak-web-3.0.1\efak-web-3.0.1

在这里插入图片描述

配置好环境变量后,我们还需要在数据库中选一个库,或者是新建一个库,笔者这边是按推荐建立了一个名为ke的库,如下:
在这里插入图片描述

然后在system-config.properties配置文件中连接该库

在这里插入图片描述

同时别忘记,在该配置文件中还要配置kafka的JMX的地址,不然是拿不到kafka的数据的

在这里插入图片描述
最后,修改一下ZK的配置,把我们上面启动的ZK的位置给他填上去,填完注意保存后再关闭

在这里插入图片描述

最后进入EFAK的bin目录,运行其 ke.bat 文件进行启动

在这里插入图片描述

3. 启动故障及解决

在这一步笔者的电脑出现了几个问题,我们一一来说:

① 错误信息 C:\Program’ is not recognized as an internal or external command

该故障如下图:

在这里插入图片描述
经查验,发现是启动脚本中存在

%JAVA_HOME%\bin\jar -xvf %KE_HOME%\kms\webapps\ke.war

这样的语句,因为笔者的JAVA_HOME设置路径,目录Program Files存在空格,导致执行命令时出现异常,
在这里插入图片描述
所以可以把JAVA_HOME的路径中的Program Files为改为PROGRA~1,即如下:
在这里插入图片描述

② tomcat 启动乱码

运行命令实际上是执行一个war包,并启动一个tomcat,并弹出一个新的命令行窗口,我们在tomcat 的窗口中看见大量的乱码,如下:

在这里插入图片描述
这主要是其内置的日志输出中文,编码为UTF-8,而命令行的编码格式默认为GBK导致的,这个问题有很多方式解决,笔者提供三种思路:

方案一:Tomcat启动时会检查本地语言环境,因为笔者电脑是中文环境,才会输出中文日志。实际上在生产中部署于linux环境时,基本都是英文环境,所以我们可以把运行参数中的语言环境设置为英文即可。

我们打开 catalina 的脚本

在这里插入图片描述

在日志输出的设置上,指定英文输出,如下图,即加上

-Duser.language=en -Duser.region=US

在这里插入图片描述

方案二:既然其日志输出编码格式为GBK,那我们就修改tmacat输出日志的编码成GBK,该方案需修改tomcat的日志配置文件,如下:

在这里插入图片描述
将其控制台输出的编码格式改为GBK

在这里插入图片描述

方案三:修改我们控制台的编码,此方案我们可以设置命令提示行的属性来完成,操作如下:

我们先打开命令行,输入 chcp 65001

在这里插入图片描述
然后单击菜单可以看到菜单
在这里插入图片描述

点击属性可观察到它的编码格式

在这里插入图片描述

但是这样的设置仅仅是针对当前窗口的,当我们启动tomcat时,它会打开另一个命令窗口,我们可以设法让其不会打开其他窗口,而继续在本窗口输出。我们可以打开启动tomcat 的脚本

在这里插入图片描述

将其执行参数从 start 改为 run ,这样就不会再弹其他窗口了

在这里插入图片描述

③ mysql 时区值异常

如下图,在启动过程中,连接mysql时在获取时区信息时出现异常,这个其实在高版本mysql上很多人都遇到过,如下图:
在这里插入图片描述

我们只需要在mysql 时把时区设置一下就可以,以root 用户设置时区

set global time_zone='+8:00';

在这里插入图片描述

④ 表缺失

由于EFAK对数据库的控制不够精细,所以可能会出现建表故障,导致启动后没有建表成功,此时还需要手动建表,其建表脚本我已经上传,可自行点击: 建表脚本下载

在这里插入图片描述

3. 启动与登录

在解决完上述各项问题后,我们成功启动了 kafka-eagle。此时可以打开http://127.0.0.1:8048/,看到如下页面:

在这里插入图片描述

输入默认的用户名:admin 及密码 123456 即可进入管理页面

在这里插入图片描述

总结

在本篇技术博文中,我们详细地教你如何安装kafka,还有它的可视化工具 kafka-eagle,中间也列举了一些异常以及它的处理方式,真正做到了手把手教学。那么安装教学就告一段落。在后面的学习中,我们将讲解他们的使用及运行原理,希望同学们能喜欢

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

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

相关文章

Vue3:ref函数和reactive函数和setup函数

ref基本用法 一、ref函数基本用法: 作用:定义一个响应式的数据 语法:const xxx ref(initValue),创建一个包含响应式数据的引用对象(reference对象简称ref对象) 备注: 1. 基本数据类型:响应式依…

灾备建设中,虚拟机异构平台恢复技术原理与应用

在如今混合云环境下,实现异构虚拟化恢复与迁移面临着极大挑战。不同于市面上有代理的恢复方案,虚拟机无代理跨平台恢复解决方案利用自主研发的转换引擎(VMCE)对已备份虚拟机文件进行高效的存储格式转换和配置信息转换,…

vue3的组件传值

在Vue3中&#xff0c;组件传值可以通过props属性实现。 首先&#xff0c;在父组件中定义props属性&#xff0c;然后将数据传递给子组件。 // Parent.vue <template><Child :message"message" /> </template><script> import Child from ./…

运营微信视频号要注意哪些问题?

视频号运营的5个雷点你别踩! 今天和你说的视频号运营的5大雷点 你踩过没? 这5点虽然和野花似的 但也不能踩哦 雷点1:违规行为 雷点2:抄袭剽窃 雷点3:没有明确目标受众 雷点4:短视频质量过低 雷点5:缺少社交互动 相信不管是视频号还是别的平台都通用哈

docker consul容器自动与注册

微服务&#xff08;容器&#xff09;注册与发现&#xff1a;是一种分布式的管理系统&#xff0c;定位服务的方法。 在传统架构当中&#xff0c;应用程序之间直连到已知服务&#xff0c;设备提供的网络&#xff1a;IP地址&#xff0c;基于tcp/ip&#xff0c;端口&#x…

flume:Ncat: Connection refused.

一&#xff1a;nc -lk 44444 和 nc localhost 44444区别 nc -lk 44444 和 nc localhost 44444 是使用 nc 命令进行网络通信时的两种不同方式。 1. nc -lk 44444&#xff1a; - 这个命令表示在本地监听指定端口&#xff08;44444&#xff09;并接受传入的连接。 - -l 选项…

Google 论坛和 QA 结构化数据更新重点关注 Authorship

谷歌更新了论坛结构化数据和问答结构化数据的文档&#xff0c;明确了这两种结构化数据与作者身份相关的新要求。 就论坛结构化数据而言&#xff0c;对 InteractionCounter schema.org 数据类型进行了说明&#xff0c;还为作者类型增加了一个新的推荐属性&#xff0c;这两个属性…

AutoSAR(基础入门篇)1.3-AutoSAR的概述

目录 一、到底什么是AutoSAR 1、大白话来讲 2、架构上来讲 应用软件层(APPL) 实时运行环境&#xff08;RTE&#xff09; 基础软件层(BSW) 3、工具链上来讲 二、AutoSAR的目标 一、到底什么是AutoSAR 1、大白话来讲 AUTOSAR 就是AUTomotive Open System ARchitecture的…

nginx 1.24.0 安装nginx最新稳定版

1.官网&#xff1a; nginx: download 2. 选择稳定版&#xff1a; 3. 可以下载&#xff0c;然后上传服务器&#xff0c;也可以wget获取&#xff1a; cd /home wget https://nginx.p2hp.com/download/nginx-1.24.0.tar.gz 4. 放入/home 下。并解压缩&#xff0c;重命名nginx;…

【教学类-06-18】20231216 (按“列”正序题)X-Y之间“加法题+题”(1页最多0-13。不考虑空格补全)

作品展示&#xff1a;按列排序&#xff0c;从小到大正序&#xff08;有空格&#xff09; 背景需求&#xff1a; 55格模板&#xff0c;很多幼儿都是按照“列”的方式&#xff0c;从上到下&#xff0c;从左向右完成题目的。 视觉上&#xff0c;两列之间间距大&#xff08;给孩子…

DevOps|研发提效-敏捷开发之任务看板

上篇文章中&#xff0c;我讲了敏捷第一步-每日站立会&#xff0c;讲了我们平时是怎么开站立会的&#xff0c;其实15-30分钟就够了&#xff0c;绝对不是时间长得让你想拄拐那种。本文我们开始讲敏捷开发中的看板。没有看板之前&#xff0c;我们真的是在白板上画泳道&#xff0c;…

技术面试斗智斗勇II

上回书说到&#xff0c;面试3年经验的java开发遇到了很多培训班的包装简历。这次说说初级的识别策略。 问问他之前工作的公司是什么。即使是假的&#xff0c;候选人也能回答&#xff0c;但是他们往往说的是全称&#xff0c;比如 北京XXX科技有限公司。很显然&#xff0c;如果你…

【洛谷】自动修正

自动修正 题目链接 题意 即将原字符串中的所有小写字母转化为大写字母。 思路 输入所需值后&#xff0c;在for循环中运用acll码来进行大小写转化&#xff0c;最后输出即可 坑点 注意acll码转换大小写时不要弄反&#xff0c;不然会使大写字母转化成小写 实现步骤 同思路 代码 …

美团赚钱更难了,Q3核心业务利润率下降2%,市值一年缩水近6000亿

从“买菜”卷向“超市”&#xff0c;成立5年的美团买菜更名为“小象超市”。 就在更名公告发布的前一天&#xff0c;美团公布了2023年三季报&#xff0c;尽管三季度营收净利双增长&#xff0c;但其股价却呈相反趋势。 三季报发布次日(11月29日)&#xff0c;美团港股股价单日跌…

MIT6.5840-2023-Lab2C: Raft-Persistence

前置知识 见上一篇 Lab2A。 实验内容 实现 RAFT&#xff0c;分为四个 part&#xff1a;leader election、log、persistence、log compaction。 实验环境 OS&#xff1a;WSL-Ubuntu-18.04 golang&#xff1a;go1.17.6 linux/amd64 Part 2C: persistence 大部分的bug都与这…

八、Seata的XA模式

目录 八、Seata的XA模式8.3 XA模式多数据源场景1 环境搭建2、使⽤XA模式解决事务 八、Seata的XA模式 8.3 XA模式多数据源场景 1 环境搭建 建库建表 代码的db.sql中 创建工程 添加依赖 <dependency><groupId>org.springframework.boot</groupId><ar…

C语言 字符串处理相关函数大汇总之(1~5)

1&#xff0c;strcpy函数 将一个字符串复制到另一个字符串。它的原型是&#xff1a; char *strcpy(char *dest, const char *src); 这个函数接受两个参数&#xff1a; (1)&#xff0c;dest&#xff1a;目标字符串。它必须是一个足够大的字符数组&#xff0c;以容纳源字符串的…

VBA技术资料MF96:单字段多条件高级筛选

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到…

华三交换机基础配置

文章目录 配置远程Telnet/SSH账号其他基本配置维护设备常用 当配置华三交换机时&#xff0c;以下是一些基本配置步骤和命令。将介绍如何配置远程Telnet/SSH账号以及其他一些常见的配置。 配置远程Telnet/SSH账号 要配置远程Telnet/SSH账号&#xff0c;可以按照以下步骤进行操作…

玩转Docker(四):容器指令、生命周期、资源限制、容器化支持、常用命令

文章目录 一、容器指令1.运行2.启动/停止/重启3.暂停/恢复4.删除 二、生命周期三、资源限制1.内存限额2.CPU限额3.磁盘读写带宽限额 四、cgroup和namespace五、常用命令 一、容器指令 1.运行 按用途容器大致可分为两类&#xff1a;服务类容器和工具类的容器。 服务类容器&am…