一、kafka-manager 简介
为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager。
这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。
它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能:
1.管理多个kafka集群
2.便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分布情况)
3.选择你要运行的副本
4.基于当前分区状况进行
5.可以选择topic配置并创建topic(0.8.1.1和0.8.2的配置不同)
6.删除topic(只支持0.8.2以上的版本并且要在broker配置中设置delete.topic.enable=true)
7.Topic list会指明哪些topic被删除(在0.8.2以上版本适用)
8.为已存在的topic增加分区
9.为已存在的topic更新配置
10.在多个topic上批量重分区
11.在多个topic上批量重分区(可选partition broker位置)
kafka-manager 项目地址:https://github.com/yahoo/kafka-manager
二、安装
1. 环境要求
1、jdk
openjdk version "1.8.0_302"
2、kafka集群信息
服务器:
192.168.131.171:9092
192.168.131.171:9093
192.168.131.171:9094
软件:
kafka_2.12-2.6.2
apache-zookeeper-3.5.9
2. 下载安装 kafka-manager
2.1 下载kafka-manager
想要查看和管理Kafka,完全使用命令并不方便,我们可以使用雅虎开源的Kafka-manager,GitHub地址如下:
image.png
我们可以使用Git或者直接从Releaseshttps://github.com/yahoo/CMAK/releases中下载,此处从下面的地址下载 3.0.0.5 版本
image.png我们选择第一个zip包进行下载。下载完成后上传到Linux服务器上。
image.png
2.2 编译
进入到源码目录,执行./sbt clean dist 进行编译
编译完成后会生成一个kafka-manager-1.3.3.23.zip文件,这个文件就是编译后的文件
这个编译过程太漫长了… 没等到… 建议大家用下面编译好的。
image.png注意:上面下载的是源码,下载后需要按照后面步骤进行编译。如果觉得麻烦,可以直接从下面地址下载编译好的 kafka-manager-1.3.3.7.zip。
链接:https://pan.baidu.com/s/1qYifoa4
密码:el4o
我这里使用的是百度网盘中编译好的kafka-manager-1.3.3.7.zip。
2.3 解压
我们创建一个kafka-manager的文件夹,然后进行解压:
unzip kafka-manager-1.3.3.7.zip
image.png
2.4 修改配置 conf/application.conf
image.png将kafka-manager.zkhosts="kafka-manager-zookeeper:2181"中的zookeeper地址换成自己安装的。
# kafka-manager.zkhosts="localhost:2181"
kafka-manager.zkhosts="192.168.131.171:2181"
# 如果是集群,参考如下
# kafka-manager.zkhosts="10.0.0.50:12181,10.0.0.60:12181,10.0.0.70:12181"
2.5 启动
确保自己本地的ZK已经启动了之后,我们来启动Kafka-manager。
kafka-manager 默认的端口是9000。
可通过 -Dhttp.port,指定端口; -Dconfig.file=conf/application.conf指定配置文件:
我们使用默认端口号启动吧:
nohup bin/kafka-manager -Dconfig.file=conf/application.conf &
// 或者
bin/kafka-manager
我们使用bin/kafka-manager这个命令来启动,会使用默认配置文件和端口号9000.
启动完毕后可以查看端口是否启动,由于启动过程需要一段时间,端口起来的时间可能会延后。
使用ip地址:端口访问测试
image.png
可以看到,此时已经启动成功了。
三、测试 kafka-mamager
1 新建 Cluster
点击【Cluster】>【Add Cluster】打开如下添加集群的配置界面:
输入集群的名字(如Kafka-Cluster-1)和 Zookeeper 服务器地址(如localhost:2181),选择最接近的Kafka版本(如0.8.1.1)
image.png注意:如果没有在 Kafka 中配置过 JMX_PORT,千万不要选择第一个复选框。
Enable JMX Polling
如果选择了该复选框,Kafka-manager 可能会无法启动。
其他broker的配置可以根据自己需要进行配置,默认情况下,点击【保存】时,会提示几个默认值为1的配置错误,需要配置为>=2的值。提示如下。
image.png
新建完成后,运行界面如下:
image.png image.png
TOPIC list
2 Broker
image.png四、管理 kafka-manager
4.1 新建主题
点击【Topic】>【Create】可以方便的创建并配置主题。如下显示:
image.png
接下来我们根据一张图理解上面的设置:
image.png
在上图一个Kafka集群中,有两个服务器,每个服务器上都有2个分区。P0,P3可能属于同一个主题,也可能是两个不同的主题。
如果设置的Partitons和Replication Factor都是2,这种情况下该主题的分布就和上图中Kafka集群显示的相同,此时P0,P3是同一个主题的两个分区。P1,P2也是同一个主题的两个分区,Server1和Server2其中一个会作为Leader进行读写操作,另一个通过复制进行同步。
如果设置的Partitons和Replication Factor都是1,这时只会根据算法在某个Server上创建一个分区,可以是P0~4中的某一个(分区都是新建的,不是先存在4个然后从中取1个)。
这里我们都设置为2,点击【Create】然后进入创建的这个主题,显示如下。
image.png4.2 查看主题
点击【topic】下面的主题名称,即可查看主题
image.png
网友评论