为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 CMAK(原名Kafka Manager)。
这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。
它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能:
管理多个kafka集群 便捷的检查kafka集群状态(topics,brokers,备份分布情况,分区分布情况) 选择你要运行的副本 基于当前分区状况进行 可以选择topic配置并创建topic(0.8.1.1和0.8.2的配置不同) 删除topic(只支持0.8.2以上的版本并且要在broker配置中设置delete.topic.enable=true) Topic list会指明哪些topic被删除(在0.8.2以上版本适用) 为已存在的topic增加分区 为已存在的topic更新配置 在多个topic上批量重分区 在多个topic上批量重分区(可选partition broker位置)
kafka-manager 项目地址:https://github.com/yahoo/kafka-manager
1、jdk
openjdk version "1.8.0_302"
2、kafka集群信息
服务器:
10.177.168.136:9092
10.177.168.137:9092
10.177.168.138:9092
软件:
kafka_2.12-2.6.2
apache-zookeeper-3.5.9
想要查看和管理Kafka,完全使用命令并不方便,我们可以使用雅虎开源的Kafka-manager,GitHub地址如下:
https://github.com/yahoo/kafka-manager
我们可以使用Git或者直接从Releaseshttps://github.com/yahoo/CMAK/releases中下载,此处从下面的地址下载 3.0.0.5 版本.
进入到源码目录,执行https://mp.weixin.qq.com/sbt clean dist 进行编译
编译完成后会生成一个kafka-manager-2.0.0.2.zip文件,这个文件就是编译后的文件
这个编译过程太漫长了… 没等到… 建议大家用下面编译好的。
注意:上面下载的是源码,下载后需要按照后面步骤进行编译。如果觉得麻烦,可以直接从下面地址下载编译好的kafka-manager-2.0.0.2.zip。
https://pan.baidu.com/s/1ajCfbyfh1jUm7Rusv3IF2A
提取码: k7s3
[deployer@mc-hh401-col01 app]$ unzip kafka-manager-2.0.0.2.zip
修改配置文件conf/application.conf
将kafka-manager.zkhosts="kafka-manager-zookeeper:2181"中的zookeeper地址换成自己安装的。
# kafka-manager.zkhosts="kafka-manager-zookeeper:2181"
kafka-manager.zkhosts="10.177.168.136:2181"
# 如果是集群,参考如下
# kafka-manager.zkhosts="10.177.168.136:2181,10.177.168.136:2181,10.177.168.136:2181"
kafka-manager 默认的端口是9000。
可通过 -Dhttp.port,指定端口; -Dconfig.file=conf/application.conf指定配置文件。
使用默认端口启动:
nohup bin/kafka-manager -Dconfig.file=conf/application.conf &
// 使用bin/kafka-manager这个命令来启动,会使用默认配置文件和端口号9000.
bin/kafka-manager
启动完毕后可以查看端口是否启动,由于启动过程需要一段时间,端口起来的时间可能会延后。
Enable JMX Polling,如果选择了该复选框,Kafka-manager 可能会无法启动。
[root@master ~]# cd /usr/hdp/current/kafka-broker/bin/
[root@master ~]# vi kafka-server-start.sh
#添加下面标红的代码到指定位置
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
export JMX_PORT="9988"
fi
在每个broker上都需要修改