一、kafka-manager 簡介
- 為了簡化開發(fā)者和服務(wù)工程師維護(hù)Kafka集群的工作,yahoo構(gòu)建了一個(gè)叫做Kafka管理器的基于Web工具,叫做 Kafka Manager。這個(gè)管理工具可以很容易地發(fā)現(xiàn)分布在集群中的哪些topic分布不均勻,或者是分區(qū)在整個(gè)集群分布不均勻的的情況。它支持管理多個(gè)集群、選擇副本、副本重新分配以及創(chuàng)建Topic。同時(shí),這個(gè)管理工具也是一個(gè)非常好的可以快速瀏覽這個(gè)集群的工具,有如下功能:
1.管理多個(gè)kafka集群
2.便捷的檢查kafka集群狀態(tài)(topics,brokers,備份分布情況,分區(qū)分布情況)
3.選擇你要運(yùn)行的副本
4.基于當(dāng)前分區(qū)狀況進(jìn)行
5.可以選擇topic配置并創(chuàng)建topic(0.8.1.1和0.8.2的配置不同)
6.刪除topic(只支持0.8.2以上的版本并且要在broker配置中設(shè)置delete.topic.enable=true)
7.Topic list會(huì)指明哪些topic被刪除(在0.8.2以上版本適用)
8.為已存在的topic增加分區(qū)
9.為已存在的topic更新配置
10.在多個(gè)topic上批量重分區(qū)
11.在多個(gè)topic上批量重分區(qū)(可選partition broker位置)
kafka-manager 項(xiàng)目地址:https://github.com/yahoo/kafka-manager
二、安裝
1. 環(huán)境要求
- Kafka 0.8.1.1 or 0.8.2.* or 0.9.0.*
Java 8+
zookeeper 2+
本次實(shí)驗(yàn)所用的環(huán)境是kafka-0.9.1.0 , jdk-1.8.0_60 , zookeeper-3.4.7,下載解壓安裝運(yùn)行
# start zookeeper
cd /usr/local/zookeeper-3.4.7
./bin/zkServer.sh start
#
# start kafka
cd /usr/local/kafka_2.11-0.9.0.0
./bin/kafka-server-start.sh ./config/server.properties
2. 下載安裝 kafka-manager
- 下載編譯
git clone https://github.com/yahoo/kafka-managercd kafka-manager
cd kafka-manager
# 因?yàn)橐幾g。所以下面這步操作要等很久
sbt clean distcd target/
# 在target目錄下我們可以看到 kafka-manager
kafka-manager-1.3.0.8.zip
tips:
使用sbt編譯打包的時(shí)候時(shí)間可能會(huì)比較長,如果你hang在
Loading project definition from kafka-manager/project
可以修改project/plugins.sbt中的LogLevel參數(shù)
將logLevel := Level.Warn修改為logLevel := Level.Debug
- 解壓
unzip kafka-manager-1.3.0.8.zip -d /usr/local
cd /usr/local/kafka-manager-1.3.0.8
- 修改配置 conf/application.properties
# 如果zk是集群,這里填寫多個(gè)zk地址
kafka-manager.zkhosts="localhost:2181"
- 啟動(dòng)
bin/kafka-manager
kafka-manager 默認(rèn)的端口是9000,可通過 -Dhttp.port,指定端口; -Dconfig.file=conf/application.conf指定配置文件:
nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=8080 &
我們用瀏覽器訪問試試,界面非常簡潔

- 這樣便安裝成功了
三、測試 kafka-mamager
1. 新建 Cluster
填寫cluster名--zk地址

建好之后看到如下界面

2. 新建 topic
-
填寫分區(qū)和副本個(gè)數(shù)
topic
3. 查看我們的 topic
- kafka-manager

- kafka
# bin/kafka-topics.sh --list --zookeeper localhost:2181

4. 啟動(dòng) consumer
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic test-a
5. 啟動(dòng) producer,并在啟動(dòng)后的console輸入一些信息

bin/kafka-console-producer.sh --broker-list 10.26.236.43:9092 --topic test-a
輸入 message

可以看到 consumer 已經(jīng)收到消息

- 到這里,我們的kafka-manager已搭建測試成功,它的其他用法大家可自行測試。
