一、kafka-manager 簡(jiǎn)介
為了簡(jiǎn)化開發(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)境要求
1、jdk
openjdk version "1.8.0_302"
2砰奕、kafka集群信息
服務(wù)器:
192.168.131.171:9092
192.168.131.171:9093
192.168.131.171:9094
軟件:
kafka_2.12-2.6.2
apache-zookeeper-3.5.9
2. 下載安裝 kafka-manager
2.1 下載kafka-manager
想要查看和管理Kafka蛛芥,完全使用命令并不方便,我們可以使用雅虎開源的Kafka-manager脆淹,GitHub地址如下:
我們可以使用Git或者直接從Releaseshttps://github.com/yahoo/CMAK/releases中下載常空,此處從下面的地址下載 3.0.0.5 版本
我們選擇第一個(gè)zip包進(jìn)行下載。下載完成后上傳到Linux服務(wù)器上盖溺。
2.2 編譯
進(jìn)入到源碼目錄漓糙,執(zhí)行./sbt clean dist 進(jìn)行編譯
編譯完成后會(huì)生成一個(gè)kafka-manager-1.3.3.23.zip文件,這個(gè)文件就是編譯后的文件
這個(gè)編譯過(guò)程太漫長(zhǎng)了… 沒等到… 建議大家用下面編譯好的烘嘱。
注意:上面下載的是源碼昆禽,下載后需要按照后面步驟進(jìn)行編譯。如果覺得麻煩蝇庭,可以直接從下面地址下載編譯好的 kafka-manager-1.3.3.7.zip醉鳖。
鏈接:https://pan.baidu.com/s/1qYifoa4
密碼:el4o
我這里使用的是百度網(wǎng)盤中編譯好的kafka-manager-1.3.3.7.zip。
2.3 解壓
我們創(chuàng)建一個(gè)kafka-manager的文件夾哮内,然后進(jìn)行解壓:
unzip kafka-manager-1.3.3.7.zip
2.4 修改配置 conf/application.conf
將kafka-manager.zkhosts="kafka-manager-zookeeper:2181"中的zookeeper地址換成自己安裝的盗棵。
# kafka-manager.zkhosts="localhost:2181"
kafka-manager.zkhosts="192.168.131.171:2181"
# 如果是集群壮韭,參考如下
# kafka-manager.zkhosts="10.0.0.50:12181,10.0.0.60:12181,10.0.0.70:12181"
2.5 啟動(dòng)
確保自己本地的ZK已經(jīng)啟動(dòng)了之后,我們來(lái)啟動(dòng)Kafka-manager纹因。
kafka-manager 默認(rèn)的端口是9000喷屋。
可通過(guò) -Dhttp.port,指定端口; -Dconfig.file=conf/application.conf指定配置文件:
我們使用默認(rèn)端口號(hào)啟動(dòng)吧:
nohup bin/kafka-manager -Dconfig.file=conf/application.conf &
// 或者
bin/kafka-manager
我們使用bin/kafka-manager這個(gè)命令來(lái)啟動(dòng)瞭恰,會(huì)使用默認(rèn)配置文件和端口號(hào)9000.
啟動(dòng)完畢后可以查看端口是否啟動(dòng)屯曹,由于啟動(dòng)過(guò)程需要一段時(shí)間,端口起來(lái)的時(shí)間可能會(huì)延后惊畏。
使用ip地址:端口訪問(wèn)測(cè)試
可以看到恶耽,此時(shí)已經(jīng)啟動(dòng)成功了。
三颜启、測(cè)試 kafka-mamager
1 新建 Cluster
點(diǎn)擊【Cluster】>【Add Cluster】打開如下添加集群的配置界面:
輸入集群的名字(如Kafka-Cluster-1)和 Zookeeper 服務(wù)器地址(如localhost:2181)偷俭,選擇最接近的Kafka版本(如0.8.1.1)
注意:如果沒有在 Kafka 中配置過(guò) JMX_PORT,千萬(wàn)不要選擇第一個(gè)復(fù)選框缰盏。
Enable JMX Polling
如果選擇了該復(fù)選框社搅,Kafka-manager 可能會(huì)無(wú)法啟動(dòng)。
其他broker的配置可以根據(jù)自己需要進(jìn)行配置乳规,默認(rèn)情況下,點(diǎn)擊【保存】時(shí)合呐,會(huì)提示幾個(gè)默認(rèn)值為1的配置錯(cuò)誤暮的,需要配置為>=2的值。提示如下淌实。
新建完成后冻辩,運(yùn)行界面如下:
TOPIC list
2 Broker
四、管理 kafka-manager
4.1 新建主題
點(diǎn)擊【Topic】>【Create】可以方便的創(chuàng)建并配置主題拆祈。如下顯示:
接下來(lái)我們根據(jù)一張圖理解上面的設(shè)置:
在上圖一個(gè)Kafka集群中恨闪,有兩個(gè)服務(wù)器,每個(gè)服務(wù)器上都有2個(gè)分區(qū)放坏。P0,P3可能屬于同一個(gè)主題咙咽,也可能是兩個(gè)不同的主題。
如果設(shè)置的Partitons和Replication Factor都是2淤年,這種情況下該主題的分布就和上圖中Kafka集群顯示的相同钧敞,此時(shí)P0,P3是同一個(gè)主題的兩個(gè)分區(qū)。P1,P2也是同一個(gè)主題的兩個(gè)分區(qū)麸粮,Server1和Server2其中一個(gè)會(huì)作為L(zhǎng)eader進(jìn)行讀寫操作溉苛,另一個(gè)通過(guò)復(fù)制進(jìn)行同步。
如果設(shè)置的Partitons和Replication Factor都是1弄诲,這時(shí)只會(huì)根據(jù)算法在某個(gè)Server上創(chuàng)建一個(gè)分區(qū)愚战,可以是P0~4中的某一個(gè)(分區(qū)都是新建的,不是先存在4個(gè)然后從中取1個(gè))。
這里我們都設(shè)置為2寂玲,點(diǎn)擊【Create】然后進(jìn)入創(chuàng)建的這個(gè)主題塔插,顯示如下。
4.2 查看主題
點(diǎn)擊【topic】下面的主題名稱敢茁,即可查看主題