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标准的编译工具,可以用于编译、打包、部署等操作。

  1. 下载:Sbt Download
  2. 解压:$ tar -zxvf sbt-x.xx.xx.tgz -C /home/app/
  3. 配置env:$ vim .bash_profile or $ vim /etc/profile
     export SBT_HOME=/home/hadoop/app/sbt
     export PATH=$SBT_HOME/bin:$PATH
    
  4. 变量生效: $ source .bash_profile or $ source /etc/profile
  5. 版本查看:$ 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 从源码安装

  1. 源码拉取:$ git clone https://github.com/yahoo/CMAK.git
  2. 构建zip包:$ sbt clean dist (在CMAK目录下)
  3. 解压zip包: $ unzip cmak-x.x.x.x.zip -d /opt/
  4. 创建链接:$ ln -sf /opt/cmak-x.x.x.x /opt/cmak

1.2.2 Releases安装

如果你不想拉源码,再编译,可以选择从Releases下载安装。
在这里插入图片描述

1.2.3 部署配置参考

请参阅有关生产部署/配置的播放框架文档。2

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:
在这里插入图片描述


  1. CMAK ↩︎

  2. CMAK部署配置 ↩︎

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐