用好 kafka,你不得不知的那些工具

news2024/9/28 13:18:18

前言

工欲善其事,必先利其器。本文主要分享一下消息中间件 kafka 安装部署的过程,以及我平时在工作中针对 kafka 用的一些客户端工具和监控工具。

kafka 部署架构

一个 kafka 集群由多个kafka broker组成,每个broker将自己的元数据信息注册到zookeeper中,通过zookeeper关联形成一个集群。

prettyZoo 客户端

既然kafka依赖zookeeper,我难免就需要看看zookeeper中究竟存储了kafka的哪些数据,这边介绍一款高颜值的客户端工具prettyZooPrettyZoo是一款基于Apache CuratorJavaFX 实现的 Zookeeper 图形化管理客户端,使用非常简单。

下载地址: https://github.com/vran-dev/PrettyZoo

  • 连接

  • 界面化操作zookeeper

小 tips: kafka部署时配置文件中配置zookeeper地址的时候,可以采用如下的方式,带上目录,比如xxxx:2181/kafka或者xxxx:2181/kafka1,可以避免冲突。

#配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理)zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka

复制代码

kafka Tool 客户端

Kafka Tool是一个用于管理和使用Apache Kafka集群的GUI应用程序。 Kafka Tool提供了一个较为直观的 UI 可让用户快速查看Kafka集群中的对象以及存储在topic中的消息,提供了一些专门面向开发人员和管理员的功能。

下载地址: https://www.kafkatool.com/index.html

kafka 监控工具

kafka 自身并没有继承监控管理系统,因此对 kafka 的监控管理比较不便,好在有大量的第三方监控管理系统来使用,这里介绍一款优秀的监控工具Kafka Eagle,可以用监控 Kafka 集群的整体运行情况。

下载地址https://www.kafka-eagle.org/,部署也很简单,根据官方文档一步一步来即可。

注意,kafka 需要开启 JMX 端口,即修改kafka的启动命令文件kafka-server-start.sh,如下图:

kafka 集群部署

一、zookeeper 集群部署

  1. 上传安装包

  2. 移动到指定文件夹

mv zookeeper-3.4.6.tar.gz /opt/apps/

复制代码

  1. 解压

tar -zxvf zookeeper-3.4.6.tar.gz

复制代码

  1. 修改配置文件

  • 进入配置文件目录

cd /opt/apps/zookeeper-3.4.6/conf

复制代码

  • 修改配置文件名称

mv zoo_sample.cfg zoo.cfg

复制代码

  • 编辑配置文件 vi zoo.cfg

## zk数据保存位置dataDir=/opt/apps/data/zkdata## 集群配置, hadoop1、hadoop2、hadoop3是主机名,后面是端口,没有被占用即可server.1=hadoop1:2888:3888 server.2=hadoop2:2888:3888 server.3=hadoop3:2888:3888

复制代码

  1. 创建数据目录

mkdir -p /opt/apps/data/zkdata

复制代码

  1. 生成一个 myid 文件,内容为它的id, 表示是哪个节点。

echo 1 > /opt/apps/data/zkdata/myid

复制代码

  1. 配置环境变量

vi /etc/profile 
#ZOOKEEPER_HOME export ZOOKEEPER_HOME=/opt/apps/zookeeper-3.4.6 export PATH=$PATH:$ZOOKEEPER_HOME/bin 
source /etc/profile

复制代码

  1. 在其他几个节点,即hadoop2, hadoop3上重复上面的步骤,但是 myid 文件的内容有所区别,分别是对应的 id。

echo 2 > /opt/apps/data/zkdata/myidecho 3 > /opt/apps/data/zkdata/myid

复制代码

  1. 启停集群

bin/zkServer.sh start zk 服务启动 bin/zkServer.sh status zk 查看服务状态bin/zkServer.sh stop zk 停止服务

复制代码

二、kafka 集群部署

  1. 官方下载地址:http://kafka.apache.org/downloads.html

  2. 上传安装包, 移动到指定文件夹

mv kafka_2.11-2.2.2.tgz /opt/apps/

复制代码

  1. 解压

tar -zxvf kafka_2.11-2.2.2.tgz

复制代码

  1. 修改配置文件

  • 进入配置文件目录

cd /opt/apps/kafka_2.11-2.2.2/config

复制代码

  • 编辑配置文件vi server.properties

#为依次增长的:0、1、2、3、4,集群中唯一 id broker.id=0 #数据存储的⽬录 log.dirs=/opt/apps/data/kafkadata #指定 zk 集群地址,注意这里加了一个目录 zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181/kafka

复制代码

其他的配置内容说明如下:

#broker 的全局唯一编号,不能重复,只能是数字。broker.id=0#处理网络请求的线程数量num.network.threads=3#用来处理磁盘 IO 的线程数量num.io.threads=8#发送套接字的缓冲区大小socket.send.buffer.bytes=102400#接收套接字的缓冲区大小socket.receive.buffer.bytes=102400#请求套接字的缓冲区大小socket.request.max.bytes=104857600#kafka 运行日志(数据)存放的路径,路径不需要提前创建,kafka 自动帮你创建,可以配置多个磁盘路径,路径与路径之间可以用","分隔log.dirs=/opt/module/kafka/datas#topic 在当前 broker 上的分区个数num.partitions=1#用来恢复和清理 data 下数据的线程数量num.recovery.threads.per.data.dir=1# 每个 topic 创建时的副本数,默认时 1 个副本offsets.topic.replication.factor=1#segment 文件保留的最长时间,超时将被删除log.retention.hours=168#每个 segment 文件的大小,默认最大 1Glog.segment.bytes=1073741824# 检查过期数据的时间,默认 5 分钟检查一次是否数据过期log.retention.check.interval.ms=300000#配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理)zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka

复制代码

  1. 配置环境变量

vi /etc/profile 
export KAFKA_HOME=/opt/apps/kafka_2.11-2.2.2 export PATH=$PATH:$KAFKA_HOME/bin 
source /etc/profile

复制代码

  1. 在不同的节点上重复上面的步骤,但是需要修改配置文件server.properties中的broker.id

# broker.id标记是哪个kafka节点,不能重复broker.id=1 broker.id=2

复制代码

  1. 启停集群

# 启动集群bin/kafka-server-start.sh -daemon /opt/apps/kafka_2.11-2.2.2/config/server.properties # 停止集群 bin/kafka-server-stop.sh stop

复制代码

kafka 命令行工具

1. 主题命令行操作

  • 查看操作主题命令参数kafka-topics.sh

  • 查看当前服务器中的所有 topic

bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --list

复制代码

  • 创建 first topic

bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --create --partitions 1 --replication-factor 3 --topic first

复制代码

选项说明:

--topic 定义 topic 名

--replication-factor 定义副本数

--partitions 定义分区数

  • 查看 first 主题的详情

bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --describe --topic first

复制代码

  • 修改分区数(注意:分区数只能增加,不能减少

 bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --alter --topic first --partitions 3

复制代码

  • 删除 topic

 bin/kafka-topics.sh --bootstrap-server hadoop102:9092 --delete --topic first

复制代码

2. 生产者命令行操作

  • 查看操作生产者命令参数kafka-console-producer.sh

  • 发送消息

bin/kafka-console-producer.sh --bootstrap-server hadoop102:9092 --topic first>hello world>xuyang hello

复制代码

3. 消费者命令行操作

  • 查看操作消费者命令参数kafka-console-consumer.sh

  • 消费消息

bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic first

复制代码

  • 把主题中所有的数据都读取出来(包括历史数据)。

bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first

复制代码

总结

本文分享了平时我在工作使用 kafka 以及 zookeeper 常用的一些工具,同时分享了 kafka 集群的部署,值得一提的是 kafka 部署配置 zookeeper 地址的时候,我们可以添加一个路径,比如hadoop:2181/kafka这种方式,那么 kafka 的元数据信息都会放到/kafka这个目录下,以防混淆。

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

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

相关文章

【ROS2】install micro_ros

本文参考b站up:“照祥同学”的教程来的,中间一些细节的操作谨以此文作为补充,或者说是我在按照教程走的时候遇到的问题记录。视频链接:第二节:安装micro_ros 的 Arduino 开发环境_哔哩哔哩_bilibili 1. 安装和配置ros…

集权安全 | 域渗透中的 DCSync技术分析

DCSync是AD域渗透中常用的凭据窃取手段,默认情况下,域内不同DC每隔15分钟会进行一次数据同步,当一个DC从另外一个DC同步数据时,发起请求的一方会通过目录复制协议(MS- DRSR)来对另外一台域控中的域用户密码…

一分钟图情论文:《面向学科建设的我国文献资源保障评价研究综述》

一分钟图情论文:《面向学科建设的我国文献资源保障评价研究综述》 高质量的文献资源保障工作不仅能够提供完备的环境、满足用户的信息需求,在高校中,还可以发挥促进教学资源优化和科研成果产出、增强科技基础能力等作用。华中师范大学的夏立…

『树莓派云台机器人』01. 使用手机控制树莓派云台机器人

目录 1. 检查是否已经开机,连接机器人wifi2. 安装树莓派控制app应用,直连模式连接机器人3. 机器人功能实现总结 欢迎关注 『树莓派云台机器人』 博客,持续更新中 欢迎关注 『树莓派云台机器人』 博客,持续更新中 动手组装等步骤请…

halcon 安装21.05版本 小坑记录

(注意:都可以设置语言) 1.选择扩展安装 影响安装进度显示 可以后续单独安装 Visual Studio变量检查扩展 2.破解相关 主程序dll路径 路径: C:\Users******\AppData\Local\Programs\MVTec\HALCON-21.05-Progress\bin\x64-win64 Visual St…

chatgpt赋能python:Python修改配置文件

Python 修改配置文件 Python 作为一种优秀的编程语言,在实际使用中起到了很大的作用。对于开发者来说,修改配置文件是一个常见的操作,Python 也支持在代码中修改配置文件。本篇文章将介绍如何使用 Python 修改配置文件,并且分享一…

【CSAPP】虚拟内存 | 地址空间 | 页表内存保护 | 页错误引发异常逐出 (evicted)

💭 写在前面:本文将学习《深入理解计算机系统》虚拟内存部分,CSAPP 是计算机科学经典教材《Computer Systems: A Programmers Perspective》的缩写,该教材由Randal E. Bryant和David R. OHallaron 合著。 📜 本章目录…

Bytebase:更好地管理你的 OceanBase 数据库

我们很高兴宣布:OceanBase 用户现在可以使用 Bytebase 进行数据库变更管理啦!🚀 Bytebase 是一款为 DevOps 团队准备的数据库 CI/CD 工具,专为开发者和 DBA 打造,也是唯一被 CNCF Landscape 收录的 Database CI/CD 产…

k8s 弹性伸缩的使用

1.手动扩缩容 编辑一个yaml文件 vi deployment-nginx.yaml apiVersion: apps/v1 kind: Deployment metadata:lables:app: nginxname: nginxnamespace: default spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name:…

C语言交换数组内容

代码&#xff1a; int main() {int arr1[] { 1,2,3,4,5 };int arr2[] { 6,7,8,9,0 };int sz sizeof(arr1) / sizeof(arr1[0]);int i 0;for (i 0;i<sz; i ) {int tmp arr1[i];arr1[i] arr2[i];arr2[i] tmp;}for (i 0; i < sz; i) {printf("%d ", ar…

用Vue简单开发一个学习界面

文章目录 一.首先创建我们的Vue文件夹二.源代码BodyDemoHearderDemoHomeDemoMarkdownDemoFileManager.jsMain.js&#xff08;注意绑定&#xff09;APP源代码 效果图&#xff08;按钮功能&#xff09;新增二级菜单&#xff08;v-for&#xff09;需要的可以私信 一.首先创建我们的…

办公技巧:学会这 7 种 PPT 制作技巧,让 PPT 制作效率飙升

F4 键&#xff1a;重复上一步操作 例如需要你在一分钟内完成 8 个形状的排版&#xff0c;你会怎么做&#xff1f; 如果是最基础的方式&#xff0c;可能得画出一个之后&#xff0c;慢慢的按住 Ctrl 复制新的出来&#xff0c;但这样实在是太慢了&#xff01;&#xff08;你是这样…

游戏安全运营前置化,10项安全测试预见外挂风险

自今年起&#xff0c;游戏版号已恢复常态化发放。据统计&#xff0c;截至目前年内累计发放460款游戏版号&#xff0c;每月的发放数量均超80款。多款热门新游已上线&#xff0c;大量游戏也已进入测试阶段&#xff0c;蓄势待发&#xff0c;游戏行业持续回暖。 在游戏行业动态回暖…

【历史上的今天】5 月 26 日:美国首个计算机软件程序专利;苹果市值首次超越微软;Wiki 的发明者出生

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 5 月 26 日&#xff0c;在 1995 年的今天&#xff0c;微软公司首席执行官比尔盖茨发表了一番讲话&#xff0c;他认为自己的公司在估计互联网的影响和普及方面错…

opencv实践-图像去畸变

目录 1.背景2.镜头成像畸变原因3.去畸变方法4. opencv去畸变函数5.代码实现 1.背景 由于相机的镜头并不完全理想&#xff0c;成像时会产生线条扭曲、失真等。对双目图像、鸟瞰图等进行处理时&#xff0c;首先要矫正去畸变。 2.镜头成像畸变原因 相机的镜头前有一块透镜&…

python+vue垃圾分类论坛的设计与实现85l30

环境保护是一项利国利民的重大民生工程,是造福子孙后代的幸福事,基于全面分析我国大学生环境保护教育现状的基础上提出了高校可通过开设环境类通识任选课、专业课中融入环境保护教育、环境保护实践教学、环境保护第二课堂等有效途径加强对非环境类专业大学生环境保护教育。 本系…

拥挤聚集智能监测算法

拥挤聚集智能监测算法可以通过yolov7网络模型深度学习框架对人员数量、密度等进行实时监测&#xff0c;拥挤聚集智能监算法识别出拥挤聚集的情况&#xff0c;并及时发出预警。YOLOv7 的发展方向与当前主流的实时目标检测器不同&#xff0c;它能够同时支持移动 GPU 和从边缘到云…

开源日志监控采集平台ELKF

---------------------- FilebeatELK 部署 ---------------------- Node1节点&#xff08;2C/4G&#xff09;&#xff1a;node1/192.168.179.20 Elasticsearch Node2节点&#xff08;2C/4G&#xff09;&#xff1a;node2/192.168.179.23 …

All in ECP,转转一站式ES数据清洗解决方案

1. 业务背景 转转作为国内头部的循环经济产业公司&#xff0c;目前业务架构是中台模式。中台负责提供通用的交易能力&#xff0c;灵活快速响应业务需求&#xff0c;业务方负责前台探索创新&#xff0c;为用户提供有价值的服务。 转转交易中台目前分为基础服务、订单、促销、天路…

《深度思维》跨越式*

参考&#xff1a; https://www.zhihu.com/tardis/zm/art/410244111?source_id1005 从思维的技术到思维的格局&#xff0c;再到专注努力与漫长人生中坚忍的精神图腾&#xff0c;作者通过方法理论与案例相结合&#xff0c;介绍了深度思思维的学习方法。 深度思维简介 拥有较长的…