运行的环境要求
- Kafka 0.8.1.1+
- sbt 0.13.x
- Java 7+
功能
为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 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源码,并编译打包,包会生成在(kafka-manager/target/universal)
git clone https://github.com/yahoo/kafka-manager
cd kafka-manager
./sbt clean dist
安装,配置,启动
在conf/application.conf
中将kafka-manager.zkhosts的值设置为你的zk地址
解压
unzip kafka-manager-1.2.7.zip
修改配置
vim kafka-manager-1.2.7/conf/application.conf
启动,指定配置文件位置和启动端口号,默认为9000
nohup bin/kafka-manager
-Dconfig.file=/usr/install/kafka-manager-1.2.7/conf/application.conf
-Dhttp.port=7778 &
第一次进入web UI要进行kafka cluster的配置,都是一些比较简单的操作,这里就不多说了。
运行界面
cluster
topic-list
broker
topic
手动批量控制topic partition位置
批量重分区
tips:
使用sbt编译打包的时候时间可能会比较长,如果你hang在
Loading project definition from /home/shiwei.liang/kafka-manager/project
可以修改project/plugins.sbt
中的LogLevel参数
将logLevel := Level.Warn
修改为logLevel := Level.Debug