kafka manager支持以下功能:
- 管理多个kafka集群
- 方便的集群状态监控 (包括topics, consumers, offsets, brokers, replica distribution, partition distribution)
- 方便选择你想要的分区副本
- 配置分区任务,包括选择使用哪些brokers
- 可以对分区任务重分配
- 提供不同的选项来创建topic (0.8.1.1 has different configs than 0.8.2+,不同版本配置上有所不同)
- 删除topic(仅仅支持 0.8.2以上版本并且注意在broker config中设置delete.topic.enable=true in broker config)
- Topic list会指明哪些topic被删除 (在0.8.2以上版本适用)
- 批量产生分区任务并且和多个topic和brokers关联
- 批量运行多个主题对应的多个分区
- 向已经存在的主题中添加分区
- 对已经存在的topic修改配置
- 可选地在broker level和topic level的度量中启用JMX polling功能
- 可选地过滤在ZK上没有 ids/ owners/ & offsets/ directories的consumer
一、安装
1.安装sbt
brew install sbt
2.下载编译
git clone https://github.com/yahoo/kafka-manager.git
cd kafka-manager
sbt clean dist
3.编译完成后,包会在/target/universal
4.解压
unzip kafka-manager-1.3.3.13.zip -d /Users/guanguan/tools
cd kafka-manager-1.3.3.13/
5.修改配置文件application.conf
vim conf/application.conf
将
akka { loggers = ["akka.event.slf4j.Slf4jLogger"] loglevel = "INFO" }
改为
akka { loggers = ["akka.event.slf4j.Slf4jLogger"] loglevel = "INFO" logger-startup-timeout = 30s }
;
# 如果zk是集群,这里填写多个zk地址 kafka-manager.zkhosts="localhost:2181"
以上配置文件的修改可解决下面所展示的问题:
kafka-manager_1 | akka.ConfigurationException: Logger specified in config can't be loaded [akka.event.slf4j.Slf4jLogger] due to [akka.event.Logging$LoggerInitializationException: Logger log1-Slf4jLogger did not respond with LoggerInitialized, sent instead [TIMEOUT]]
启动zookeeper服务
cd zookeeper-3.4.9
bin/zkServer.sh start zk0.cfg
6.启动kafka-manager
bin/kafka-manager
kafka-manager 默认的端口是9000,可通过 -Dhttp.port,指定端口; -Dconfig.file=conf/application.conf指定配置文件:
nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080 &
7.在浏览器输入localhost:9000
此时表示已经安装成功了。
二、测试kafka-manager
1.新建cluster,输入cluster名字和zookeeper地址
2.点击保存
点击新建的test-cluster
3.在该cluster中新增一个topic
创建完成后是这样的:
4.接下来就要进行通信啦:
上图表明新增的topic已经存在,host的值为172.20.139.89
5.发送方:
bin/kafka-console-producer.sh --broker-list 172.20.139.89:9092 --topic test-topic
6.接收方
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic test-topic
此时表明一切正常安装。