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

前言

工欲善其事,必先利其器。本文主要分享一下消息中间件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.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


dataDir=/opt/apps/data/zkdata

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 


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


broker.id=0 

log.dirs=/opt/apps/data/kafkadata 

zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181/kafka

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


broker.id=0

num.network.threads=3

num.io.threads=8

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

配置多个磁盘路径,路径与路径之间可以用","分隔
log.dirs=/opt/module/kafka/datas

num.partitions=1

num.recovery.threads.per.data.dir=1

offsets.topic.replication.factor=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

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=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这个目录下,以防混淆。

欢迎关注个人公众号【JAVA旭阳】交流学习!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kafka 客户端工具是一种用于与 Kafka 消息队列进行通信和交互的工具。它提供了一系列命令行接口 (CLI) 和 API,可用于在 Kafka 集群中发布、订阅和使用消息。 Kafka 客户端工具具有以下主要功能: 1. 发布消息:可以使用 Kafka 客户端工具将消息发布到 Kafka 集群中的指定主题。可以通过命令行或程序化方式指定消息的内容、主题和其他属性。 2. 订阅消息:可以使用 Kafka 客户端工具Kafka 集群中的指定主题订阅消息。可以通过指定消费者组、分区和其他属性来灵活控制订阅行为。 3. 检查主题和分区:可以使用 Kafka 客户端工具查看 Kafka 集群中的所有主题和相应的分区信息。可以检查每个分区的偏移量、副本分布和其他有关分区的元数据。 4. 控制消费者组:可以使用 Kafka 客户端工具管理消费者组。可以列出当前活动的消费者组、查看组内消费者的偏移量以及重置偏移量等操作。 5. 监控和性能测试:Kafka 客户端工具还提供了一些监控工具和性能测试工具,用于监测和调优 Kafka 集群的性能。可以使用这些工具检查消息的产生和消费速率、分区偏移量的变化等。 总之,Kafka 客户端工具是一种便捷的工具,可以帮助开发人员和管理员与 Kafka 集群进行交互,并用于操作和管理消息的发布和订阅。无论是通过命令行还是API,它们都为处理 Kafka 数据流提供了强大的功能和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术小羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值