百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

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

bigegpt 2025-02-28 14:57 23 浏览

前言

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

kafka部署架构

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

prettyZoo客户端

既然kafka依赖zookeeper,我难免就需要看看zookeeper中究竟存储了kafka的哪些数据,这边介绍一款高颜值的客户端工具prettyZoo。PrettyZoo是一款基于Apache Curator 和 JavaFX 实现的 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/ka
fka

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/myid
echo 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 文件的大小,默认最大 1G
log.segment.bytes=1073741824
# 检查过期数据的时间,默认 5 分钟检查一次是否数据过期
log.retention.check.interval.ms=300000
#配置连接 Zookeeper 集群地址(在 zk 根目录下创建/kafka,方便管理)
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/ka
fka
  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这个目录下,以防混淆。

相关推荐

Linux 系统启动完整流程

一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...

超专业解析!10分钟带你搞懂Linux中直接I/O原理

我们先看一张图:这张图大体上描述了Linux系统上,应用程序对磁盘上的文件进行读写时,从上到下经历了哪些事情。这篇文章就以这张图为基础,介绍Linux在I/O上做了哪些事情。文件系统什么是...

linux入门系列12--磁盘管理之分区、格式化与挂载

前面系列文章讲解了VI编辑器、常用命令、防火墙及网络服务管理,本篇将讲解磁盘管理相关知识。本文将会介绍大量的Linux命令,其中有一部分在“linux入门系列5--新手必会的linux命令”一文中已经...

Linux环境下如何设置多个交叉编译工具链?

常见的Linux操作系统都可以通过包管理器安装交叉编译工具链,比如Ubuntu环境下使用如下命令安装gcc交叉编译器:sudoapt-getinstallgcc-arm-linux-gnueab...

可算是有文章,把Linux零拷贝技术讲透彻了

阅读本文大概需要6.0分钟。作者:卡巴拉的树链接:https://dwz.cn/BaQWWtmh本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景。为了迅速建立起零拷贝的概念...

linux软链接的创建、删除和更新

大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作。同样的,在系统级别也有。在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能...

Linux 中最容易被黑客动手脚的关键目录

在Linux系统中,黑客攻击后常会针对关键目录和文件进行修改以实现持久化、提权或隐藏恶意活动。本文介绍下黑客最常修改的目录及其手法。一、/etc目录关键文件有:/etc/passwd和/et...

linux之间传文件命令之Rsync傻瓜式教程

1.前言linux之间传文件命令用什么命令?本文介绍一种最常用,也是功能强大的文件同步和传输工具Rsync,本文提供详细傻瓜式教程。在本教程中,我们将通过实际使用案例和最常见的rsync选项的详细说...

Linux下删除目录符号链接的方法

技术背景在Linux系统中,符号链接(symlink)是一种特殊的文件,它指向另一个文件或目录。有时候,我们可能需要删除符号链接,但保留其指向的目标目录。然而,在删除符号链接时可能会遇到一些问题,例如...

阿里云国际站注册教程:aa云服务器怎么远程链接?

在全球化的今天,互联网带给我们无以计数的便利,而云服务器则是其中的重要基础设施之一。这篇文章将围绕阿里云国际站注册、aa云服务器如何远程链接,以及服务器安全防护如Ddos防火墙、网站应用防护waf防火...

Linux 5.16 网络子系统大范围升级 多个新适配器驱动加入

Linux在数据中心中占主导地位,因此每个内核升级周期的网络子系统变化仍然相当活跃。Linux5.16也不例外,周一最新与网络相关的更新加入了大量的驱动和新规范的支持。一个较新硬件的驱动是Realt...

搭建局域网文件共享服务(Samba),手机电脑都能看喜欢的影视剧

作为一名影视爱好者,为了方便地观看自己喜欢的影视作品,在家里搞一个专门用来存放电影的服务器是有必要的。蚁哥选则用一台Ubuntu系统的电脑做为服务器,共享影音文件,其他同一个局域网内的电脑或手机可以...

分享一个实用脚本—centos7系统巡检

概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本#!/bi...

Linux 中创建符号链接的方法

技术背景在Linux系统里,符号链接(SymbolicLink),也被叫做软链接(SoftLink),是一种特殊的文件,它指向另一个文件或者目录。符号链接为文件和目录的管理带来了极大的便利,比...

一文掌握 Linux 符号链接

符号链接(SymbolicLink),通常被称为“软链接”,是Linux文件系统中一种强大而灵活的工具。它允许用户创建指向文件或目录的“快捷方式”,不仅简化了文件管理,还在系统配置、软件开发和日...