Apache Kafka集群管理工具CMAK(Cluster Manager for Apache Kafka)从安装启动到配置使用
博文目录0. 关于CMAK1. 安装部署1.1 安装要求1.1.1 Java JDK安装配置1.1.2 安装Scala程序构建工具Sbt1.1.3 CDH添加Kafka服务至集群步骤1.2 部署CMAK1.2.1 从源码安装1.2.2 Releases安装1.2.3 部署配置参考2. 启动服务0. 关于CMAKCluster Manager for Apache Kafka是雅虎开源应用于Ka..
博文目录
0. 关于CMAK
Cluster Manager for Apache Kafka是雅虎开源应用于Kafka集群,是基于Web管理配置的工具。
CMAK(以前称为Kafka Manager)是用于管理Apache Kafka群集的工具。1
CMAK支持以下内容:
- 管理多个集群
- 轻松检查集群状态(主题,使用者,偏移量,代理,副本分发,分区分发)
- 运行首选副本选择
- 生成带有选项的分区分配,以选择要使用的代理
- 运行分区的重新分配(基于生成的分配)
- 使用可选的主题配置创建主题(0.8.1.1与0.8.2+具有不同的配置)
- 删除主题(仅在0.8.2+上受支持,并记住在代理配置中设置delete.topic.enable = true)
- 现在,主题列表指示标记为删除的主题(仅在0.8.2+上受支持)
- 批量生成多个主题的分区分配,并可以选择要使用的代理
- 批量运行分区的多个主题的重新分配
- 将分区添加到现有主题
- 更新现有主题的配置
- (可选)为代理级别和主题级别的度量启用JMX轮询。
- (可选)过滤出在Zookeeper中没有id / owner /&offsets /目录的使用者。
1. 安装部署
1.1 安装要求
- JDK (Java基础环境)
- Sbt (cmak是基于Scala语言开发的,进行源码打包的应用用具。)
- Kafka (CDH安装)
- ZooKeeper (CDH安装)
Apache ZooKeeper 是用于维护和同步配置数据的集中服务。是kafka集群的基础需要。
1.1.1 Java JDK安装配置
如果已有环境不满足这个条件,可以参考我的另一篇博客(Linux环境下安装Kettle软件)中关于环境变量配置部分。
1.1.2 安装Scala程序构建工具Sbt
sbt类似于Java 项目开发中像maven、gradle一样的构建工具,全称为Simple Build Tool,这是Scala标准的编译工具,可以用于编译、打包、部署等操作。
- 下载:Sbt Download;
- 解压:
$ tar -zxvf sbt-x.xx.xx.tgz -C /home/app/; - 配置env:
$ vim .bash_profileor$ vim /etc/profileexport SBT_HOME=/home/hadoop/app/sbt export PATH=$SBT_HOME/bin:$PATH - 变量生效:
$ source .bash_profileor$ source /etc/profile - 版本查看:
$ sbt sbtVersion
1.1.3 CDH添加Kafka服务至集群步骤
1)添加服务
2)选择Kafka 服务,CDH基础parcels中不含Kafka 服务,需要下载Cloudera Kafka Parcels。
3)Zookeeper为基础依赖。
4)选择Kafka Broker(KB),也就是需要安装kafka服务的集群主机。
5)选择KB主机。
6)接下来配置和启动步骤,执行完毕后的实例如下图。
7)添加服务实例过程中部分配置会在配置中查看。
8)可以向Kafka服务集群新加Broker。
1.2 部署CMAK
1.2.1 从源码安装
- 源码拉取:
$ git clone https://github.com/yahoo/CMAK.git - 构建zip包:
$ sbt clean dist(在CMAK目录下) - 解压zip包:
$ unzip cmak-x.x.x.x.zip -d /opt/ - 创建链接:
$ ln -sf /opt/cmak-x.x.x.x /opt/cmak
1.2.2 Releases安装
如果你不想拉源码,再编译,可以选择从Releases下载安装。
1.2.3 部署配置参考
2. 服务配置
最低配置是将用于CMAK(Apache kafka管理器)状态的Zookeeper主机。可以在conf目录的application.conf文件中找到。相同的文件将打包在分发zip文件中;您可以在所需服务器上解压缩文件后修改设置。
cmak.zkhosts="my.zookeeper.host.com:2181"
您可以通过逗号分隔来指定多个zookeeper主机,如下所示:
cmak.zkhosts="my.zookeeper.host.com:2181,other.zookeeper.host.com:2181"
另外,ZK_HOSTS如果您不想对任何值进行硬编码,请使用环境变量。
ZK_HOSTS="my.zookeeper.host.com:2181"
您可以选择通过修改application.conf中的默认列表来启用/禁用以下功能:
application.features=["KMClusterManagerFeature","KMTopicManagerFeature","KMPreferredReplicaElectionFeature","KMReassignPartitionsFeature"]
3. 启动服务
启动zk集群,kafka集群,再启动cmak服务。
解压缩产生的zipfile并将其更改为工作目录后,您可以运行以下服务:
$ bin/cmak
默认情况下,它将选择端口9000。这是可覆盖的,配置文件的位置也是如此。例如:
$ bin/cmak -Dconfig.file=/opt/cmak/conf/application.conf -Dhttp.port=8095
同样,如果java不在环境的路径中,或者需要针对其他版本的Java运行,请添加-java-home选项,如下所示:
$ bin/cmak -java-home /usr/java/latest
生产环境静默启动:
$ nohup bin/cmak -Dconfig.file=/opt/cmak/conf/application.conf -Dhttp.port=8095 &
jps查看服务进程,看到 ProdServerStart进程就说明启动成功。
编写服务启动脚本:
#!/bin/bash
# chmod +x kafka-manager.sh
nohup /opt/cmak/bin/cmak -Dconfig.file=/opt/cmak/conf/application.conf -Dhttp.port=8095 >/opt/cmak/log/cmak.log 2>&1 &
4. WebUI查看
集群管理:http://10.80.36.30:8095/
4.1 Cluster
Create Cluster:
下面是新加集群并配置,可参考CMAK自述文件进行参数设置(这里启动了JMX):
Cluster Summary:
4.2 Topic
Create Topic:
Topic List:
Topic View:
4.3 Consumer
Consumer List View:
Consumed Topic View:
4.4 Brokers
Broker List:
Broker View:
更多推荐


所有评论(0)