0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

想要kafka好用你就得知道这些工具

jf_78858299 来源:JAVA旭阳 作者:JAVA旭阳 2023-05-22 16:33 次阅读

前言

工欲善其事,必先利其器。本文主要分享一下消息中间件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/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这个目录下,以防混淆。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 配置
    +关注

    关注

    1

    文章

    188

    浏览量

    18375
  • kafka
    +关注

    关注

    0

    文章

    51

    浏览量

    5216
收藏 人收藏

    评论

    相关推荐

    缓存有大key?你得知道的一些手段

    是扫描出来的大key,此处只放置了有效关键信息。    图1 大key介绍: 想要解决大key,首先我们得知道什么定义为大key。 什么是大KEY: 大key 并不是指 key 的值很大,而是
    的头像 发表于 06-19 09:38 738次阅读
    缓存有大key?你<b class='flag-5'>得知道</b>的一些手段

    好用工具栏翻译软件

    这是一款很好用工具栏,提示栏,英译汉软件,鼠标放到想要翻译的地方释放就可以翻译成中文,简洁方便,可以很好地解决PCB Layout中出现的英文提示栏看不懂的问题。
    发表于 05-30 08:23

    基于发布与订阅的消息系统Kafka

    Kafka权威指南》——初识 Kafka
    发表于 03-05 13:46

    Kafka基础入门文档

    kafka系统入门教程(原理、配置、集群搭建、Java应用、Kafka-manager)
    发表于 03-12 07:22

    Kafka几个比较重要的配置参数

    Kafka在弹性、容错性以及高吞吐量方面有着很大的优势。想要达到生产环境最优,发挥这些特性,需要我们进行一系列的配置。Kafka提供了非常多的配置属性,对于初学者而言,很容易陷入困惑。
    发表于 11-04 08:10

    Kafka集群环境的搭建

    1、环境版本版本:kafka2.11,zookeeper3.4注意:这里zookeeper3.4也是基于集群模式部署。2、解压重命名tar -zxvf
    发表于 01-05 17:55

    Kafka和消息队列的关系

    与消息队列系统不同的就是它能够支持pub/sub,可以在许多服务器上进行扩展,并重新播放消息。 平时你可能不太关注这些问题,但是当你想要采用响应式编程风格而不是命令式编程风格时,上述这些就是你需要进行关注的了。 命令式编程和响应
    发表于 09-28 17:15 0次下载
    <b class='flag-5'>Kafka</b>和消息队列的关系

    安全工程师的这些事你得知道

    从领证,到注册,再到执业!来自灵魂的质问三连击,考过了注册安全工程师,这些事儿你得知道
    的头像 发表于 10-10 16:58 3175次阅读

    2020年最火十大物联网应用你知道有哪些吗

    电子发烧友网站提供《2020年最火十大物联网应用你知道有哪些吗.pdf》资料免费下载
    发表于 11-26 00:28 32次下载
    2020年最火十大物联网应<b class='flag-5'>用你</b><b class='flag-5'>知道</b>有哪些吗

    Kafka的概念及Kafka的宕机

    问题要从一次Kafka的宕机开始说起。 笔者所在的是一家金融科技公司,但公司内部并没有采用在金融支付领域更为流行的 RabbitMQ ,而是采用了设计之初就为日志处理而生的 Kafka ,所以我一直
    的头像 发表于 08-27 11:21 2093次阅读
    <b class='flag-5'>Kafka</b>的概念及<b class='flag-5'>Kafka</b>的宕机

    监控Kafka集群的常用的方法和工具介绍

    Control等工具连接到Kafka Broker的JMX端口,并监控各种关键指标,如吞吐量、延迟、磁盘使用率、网络连接数等。
    发表于 08-30 10:05 2104次阅读
    监控<b class='flag-5'>Kafka</b>集群的常用的方法和<b class='flag-5'>工具</b>介绍

    pcb菲林是什么?这5个作用你知道

    pcb菲林是什么?这5个作用你知道
    的头像 发表于 11-22 11:14 8204次阅读

    好用的串口工具

    好用的串口工具
    发表于 08-15 10:35 1次下载

    芯片开发必备工具——好用的文件比对工具有哪些?

    芯片开发必备工具——好用的文件比对工具有哪些?
    的头像 发表于 11-01 08:11 252次阅读
    芯片开发必备<b class='flag-5'>工具</b>——<b class='flag-5'>好用</b>的文件比对<b class='flag-5'>工具</b>有哪些?

    超详细“零”基础kafka入门篇

    响应数据流的实时流应用程序 要了解Kafka如何做这些事情,让我们深入探讨Kafka的能力。 (3)首先是几个概念:
    的头像 发表于 12-18 09:50 179次阅读
    超详细“零”基础<b class='flag-5'>kafka</b>入门篇