用好kafka,你不得不知的那些工具
前言
工欲善其事,必先利其器。本文主要分享一下消息中间件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集群部署
- 上传安装包
- 移动到指定文件夹
mv zookeeper-3.4.6.tar.gz /opt/apps/
- 解压
tar -zxvf zookeeper-3.4.6.tar.gz
- 修改配置文件
- 进入配置文件目录
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
- 创建数据目录
mkdir -p /opt/apps/data/zkdata
- 生成一个
myid文件,内容为它的id, 表示是哪个节点。
echo 1 > /opt/apps/data/zkdata/myid
- 配置环境变量
vi /etc/profile
#ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/apps/zookeeper-3.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
- 在其他几个节点,即
hadoop2,hadoop3上重复上面的步骤,但是myid文件的内容有所区别,分别是对应的id。
echo 2 > /opt/apps/data/zkdata/myid
echo 3 > /opt/apps/data/zkdata/myid
- 启停集群
bin/zkServer.sh start zk 服务启动
bin/zkServer.sh status zk 查看服务状态
bin/zkServer.sh stop zk 停止服务
二、kafka集群部署
- 官方下载地址:
http://kafka.apache.org/downloads.html - 上传安装包, 移动到指定文件夹
mv kafka_2.11-2.2.2.tgz /opt/apps/
- 解压
tar -zxvf kafka_2.11-2.2.2.tgz
- 修改配置文件
- 进入配置文件目录
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
- 配置环境变量
vi /etc/profile
export KAFKA_HOME=/opt/apps/kafka_2.11-2.2.2
export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile
- 在不同的节点上重复上面的步骤,但是需要修改配置文件
server.properties中的broker.id。
# broker.id标记是哪个kafka节点,不能重复
broker.id=1
broker.id=2
- 启停集群
# 启动集群
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旭阳】交流学习!
用好kafka,你不得不知的那些工具的更多相关文章
- Kafka工具教程 - Apache Kafka中的2个重要工具
1.目标 - 卡夫卡工具 在我们上一期的Kafka教程中,我们讨论了Kafka Workflow.今天,我们将讨论Kafka Tool.首先,我们将看到卡夫卡的意义.此外,我们将了解两个Kafka工具 ...
- kafka集群图形界面管理工具kafka-manager
应用说明: 图形web相对于命令行很多时候显得更直观,kafka-manager是yahoo开源出来的项目,web界面还挺好用,安装更是很便捷. 安装环境: 具体安装: 1. 下载已经编译好的zip包 ...
- 优秀的Kafka GUI客户端、可视化管理工具、监控工具
想要查看Topic里的消息却找不到软件,想要查看或更新Broker.Topic配置,想要监控Broker服务器状态?试试下面的Kafka GUI工具--Kafka Assistant 官网地址:htt ...
- 你所不知道的黑客工具之 EK 篇
EK(Exploit kits)是指一套利用恶意软件感染用户电脑发起攻击的黑客工具,时下最著名的有 Angler EK.Fiesta EK.Hanjuan EK.Nuclear EK.Neutrino ...
- kafka学习之-雅虎开源管理工具Kafka Manager
http://blog.csdn.net/lizhitao/article/details/44523663
- 十个WEB开发人员不可不知的HTML5工具
Initializr 这是一个HTML5模板创建工具,帮助你得到持续的最新的HTML5样板文件. XRAY XRAY目前支持Safari, Firefox和IE浏览器,XRAY使用了CSS3的多个酷炫 ...
- Kafka 可视化监控和管理 UI工具评估
以下内容,来自网络资料整理和个人安装使用结果.后续会持续更新
- kafka性能参数和压力测试揭秘
转自:http://blog.csdn.net/stark_summer/article/details/50203133 上一篇文章介绍了Kafka在设计上是如何来保证高时效.大吞吐量的,主要的内容 ...
- Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告
本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/12/31/KafkaColumn5_kafka_benchmark 摘要 本文主要介绍了如何利用 ...
- Kafka设计解析(一)- Kafka背景及架构介绍
本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/01/02/Kafka深度解析 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅 ...
随机推荐
- 当基础设施故障后,声网 SD-RTN™ 如何保障 RTE 服务的高可用性
云计算的出现为企业的管理.业务开展.资源整合等带来了极大的便利性,也是数字化建设的核心基建之一,然而局部宕机或者大面积宕机事件对于云厂商来说却也无法避免,全球领先的计算平台也不例外.例如,美国东部时间 ...
- JAVA数据类型以及什么是字节
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义才能使用(安全性高) java的数据类型分为两大类 基本类型(primitive type) 引用类型(reference type) / ...
- epub文件如何查看
http://epub-reader.online/# 你可以用在线的epub阅读器查看. 你可以使用本地的epub阅读器查看.如neatReader,wps. 你可以将epub转换成pdf,然后查看 ...
- ReentrantLock 锁详解
更多内容,前往个人博客 ReentrantLock 支持公平锁和非公平锁,可重入锁 ReentrantLock的底层是通过 AQS[链接]实现. 一.BAT 大厂的面试题 [1]什么是可重入,什么是可 ...
- 网络图片的爬取和存储.py(亲测有效)
import requests import os url = "https://ss0.baidu.com/7Po3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/i ...
- Linux 大文件按大小切割,合并还原
工作中,由于堡垒机限制,大文件无法上传,故产生切割大文件上传后合并还原的需求. 不说废话,直接上干货: 切割: 1.1G文件,切割为200M大小的几个文件: split ...
- 使用msf生成shellcode并用Go免杀?
msf生成的裸马现在已经不行了,加壳也只能加冷门壳了,VMP,Shielden,upx不是失效就是效果很差,所以当下,得用shellcode来免杀了 msfvenom -a x86 --platfor ...
- 联想拯救者Y9000P 2023版 双系统ubuntu安装nvidia显卡驱动、cuda及cudnn简明教程
前言 对于从事机器学习.深度学习.图像处理.自然语言处理等科研与工作的小伙伴们,ubuntu系统是一个不错的选择,本人前几天入手拯救者y9000p 2023版本,配置为:RTX4060 16G 13代 ...
- kubernetes(k8s)命名空间一直Terminating
root@hello:~# kubectl get ns NAME STATUS AGE auth Terminating 34m default Active 23h kube-node-lease ...
- k8s集群进行删除并添加node节点
在已建立好的k8s集群中删除节点后,进行添加新的节点,可参考用于添加全新node节点,若新的node需要安装docker和k8s基础组件. 建立集群可以参考曾经的文章:CentOS8 搭建Kubern ...