现在我们操作Kafka都是在命令行界面中通过脚本操作的,后面需要传很多参数,用起来还是比较麻烦的,那kafka没有提供web界面的支持吗?
很遗憾的告诉你,Apache官方并没有提供,不过好消息是有一个由雅虎开源的一个工具,目前用起来还是不错的。
它之前的名字叫KafkaManager,后来改名字了,叫CMAK
CMAK是目前最受欢迎的Kafka集群管理工具,最早由雅虎开源,用户可以在Web界面上操作Kafka集群。
可以轻松检查集群状态(Topic、Consumer、Offset、Brokers、Replica、Partition)
百度网盘地址:
链接:https://pan.baidu.com/s/1CTZnuesGJiYTrY0PhYCzyQ?pwd=z94l
提取码:z94l
那下面我们先去下载这个CMAK
需要到github上面去下载
在github里面搜索 CMAK即可。
注意:由于cmak-3.0.0.4.zip版本是在java11这个版本下编译的,所以在运行的时候也需要使用java11这个版本,我们目前服务器上使用的是java8这个版本。
我们为什么不使用java11版本呢?因为自2019年1月1日1起,java8之后的更新版本在商业用途的时候就需要收费授权了。
在这针对cmak-3.0.0.4这个版本,如果我们想要使用的话有两种解决办法
1:下载cmak的源码,使用jdk8编译
2:额外安装一个jdk11
如果想要编译的话需要安装sbt这个工具对源码进行编译, sbt 是 Scala 的构建工具, 类似于 Maven。
由于我们在这使用不属于商业用途,所以使用jdk11是没有问题的,那就不用重新编译了。
百度网盘地址:
链接:https://pan.baidu.com/s/18PFR9YKjR5Iyt29Ce1XqqA?pwd=37p1
提取码:37p1
下载jdk11,jdk-11.0.7_linux-x64_bin.tar.gz
将jdk11的安装包上传到bigdata01的/data/soft目录下
只需要解压即可,不需要配置环境变量,因为只有cmak这个工具才需要使用jdk11
[root@bigdata01 soft]# tar -zxvf jdk-11.0.7_linux-x64_bin.tar.gz
接下来把cmak-3.0.0.4.zip上传到bigdata01的/data/soft目录下。
[root@bigdata01 soft]# unzip cmak-3.0.0.4.zip
-bash: unzip: command not found
注意:如果提示-bash: unzip: command not found,则说明目前不支持unzip命令,可以使用yum在线安装。
建议先清空一下yum缓存,否则使用yum可能无法安装unzip
[root@bigdata01 soft]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras updates
Cleaning up list of fastest mirrors
安装unzip
root@bigdata01 soft]# yum install -y unzip
Loaded plugins: fastestmirror
.....
Running transaction
Installing : unzip-6.0-21.el7.x86_64 1/1
Verifying : unzip-6.0-21.el7.x86_64 1/1
Installed:
unzip.x86_64 0:6.0-21.el7
Complete!
再重新解压
[root@bigdata01 soft]# unzip cmak-3.0.0.4.zip
首先修改bin目录下的cmak脚本
在里面配置JAVA_HOME指向jdk11的安装目录,否则默认会使用jdk8
[root@bigdata01 soft]# cd cmak-3.0.0.4
[root@bigdata01 cmak-3.0.0.4]# cd bin/
[root@bigdata01 bin]# vi cmak
....
JAVA_HOME=/data/soft/jdk-11.0.7
.....
然后修改conf目录下的application.conf文件
只需要在里面增加一行cmak.zkhosts参数的配置即可,指定zookeeper的地址
注意:在这里指定zookeeper地址主要是为了让CMAK在里面保存数据,这个zookeeper地址不一定是kafka集群使用的那个zookeeper集群,随便哪个zookeeper集群都可以。
[root@bigdata01 cmak-3.0.0.4]# cd conf/
[root@bigdata01 conf]# vi application.conf
....
cmak.zkhosts="bigdata01:2181,bigdata02:2181,bigdata03:2181"
....
想要在CMAK中查看kafka的一些指标信息,在启动kafka的时候需要指定JMX_PORT
停止kafka集群
[root@bigdata01 kafka_2.12-2.4.1]# bin/kafka-server-stop.sh
[root@bigdata02 kafka_2.12-2.4.1]# bin/kafka-server-stop.sh
[root@bigdata03 kafka_2.12-2.4.1]# bin/kafka-server-stop.sh
重新启动kafka集群,指定JXM_PORT
[root@bigdata01 kafka_2.12-2.4.1]# JMX_PORT=9988 bin/kafka-server-start.sh -daemon config/server.properties
[root@bigdata02 kafka_2.12-2.4.1]# JMX_PORT=9988 bin/kafka-server-start.sh -daemon config/server.properties
[root@bigdata03 kafka_2.12-2.4.1]# JMX_PORT=9988 bin/kafka-server-start.sh -daemon config/server.properties
[root@bigdata01 cmak-3.0.0.4]# bin/cmak -Dconfig.file=conf/application.conf -Dhttp.port=9001
如果想把cmak放在后台执行的话需要添加上nohup和&
[root@bigdata01 cmak-3.0.0.4]# nohup bin/cmak -Dconfig.file=conf/application.conf -Dhttp.port=9001 &
http://bigdata01:9001/
添加集群
这几个参数配置好了以后还需要配置以下几个线程池相关的参数,这几个参数默认值是1,在保存的时候会提示需要大于1,所以可以都改为10。
brokerViewThreadPoolSize:10
offsetCacheThreadPoolSize:10
kafkaAdminClientThreadPoolSize:10
最后点击Save按钮保存即可。