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 /目录的使用者。
如果已有环境不满足这个条件,可以参考我的另一篇博客(Linux环境下安装Kettle软件)中关于环境变量配置部分。
sbt类似于Java 项目开发中像maven、gradle一样的构建工具,全称为Simple Build Tool,这是Scala标准的编译工具,可以用于编译、打包、部署等操作。
$ tar -zxvf sbt-x.xx.xx.tgz -C /home/app/
;$ vim .bash_profile
or $ vim /etc/profile
export SBT_HOME=/home/hadoop/app/sbt
export PATH=$SBT_HOME/bin:$PATH
$ source .bash_profile
or $ source /etc/profile
$ sbt sbtVersion
1)添加服务
2)选择Kafka 服务,CDH基础parcels中不含Kafka 服务,需要下载Cloudera Kafka Parcels。
3)Zookeeper为基础依赖。
4)选择Kafka Broker(KB),也就是需要安装kafka服务的集群主机。
5)选择KB主机。
6)接下来配置和启动步骤,执行完毕后的实例如下图。
7)添加服务实例过程中部分配置会在配置中查看。
8)可以向Kafka服务集群新加Broker。
$ git clone https://github.com/yahoo/CMAK.git
$ sbt clean dist
(在CMAK目录下)$ unzip cmak-x.x.x.x.zip -d /opt/
$ ln -sf /opt/cmak-x.x.x.x /opt/cmak
如果你不想拉源码,再编译,可以选择从Releases下载安装。
请参阅有关生产部署/配置的播放框架文档。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"]
启动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 &
Create Cluster:
下面是新加集群并配置,可参考CMAK自述文件进行参数设置(这里启动了JMX):
Cluster Summary:
Create Topic:
Topic List:
Topic View:
Consumer List View:
Consumed Topic View:
CMAK ↩︎
CMAK部署配置 ↩︎