一、下載安裝
想要查看和管理Kafka,完全使用命令並不方便,我們可以使用雅虎開源的Kafka-manager,GitHub地址如下:
https://github.com/yahoo/kafka-manager
我們可以使用Git或者直接從Releases中下載,此處從下面的地址下載 1.3.3.7 版本:
https://github.com/yahoo/kafka-manager/releases
下載完成後解壓。
二、環境準備
在開始安裝官方文檔進行配置前,因爲Kafka-manager使用的Play框架,爲了編譯的速度更快,先配置sbt的maven倉庫,由於默認倉庫速度較慢,因此使用aliyun提供的maven倉庫。
通過 cd ~進入當前用戶目錄,然後通過命令mkdir .sbt創建.sbt目錄,進入創建的該目錄,使用vi創建repositories文件,編輯內容如下:
[repositories]
local
aliyun: http://maven.aliyun.com/nexus/content/groups/public
typesafe: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
然後進入解壓後的 Kafka-manager 目錄,執行下面的命令:
> ./sbt clean dist
如果之前從來沒有用過Play框架,這個步驟會需要一定時間,主要是下載依賴的jar包,使用aliyun的私服可以讓這個過程縮短很多。
命令執行完成後,在 target/universal 目錄中會生產一個zip壓縮包kafka-manager-1.3.3.7.zip。將壓縮包拷貝到要部署的目錄下解壓。
在解壓後的conf目錄中打開 application.conf文件,修改其中的配置信息,最主要的內容爲:
kafka-manager.zkhosts="localhost:2181"
配置爲Kafka的 zookeeper 服務器。你還可以通過環境變量ZK_HOSTS配置這個參數值。
其他詳細的配置信息參考官方文檔:https://github.com/yahoo/kafka-manager
三、啓動
在解壓的目錄中,使用下面的命令啓動Kafka-manager。
> bin/kafka-manager
默認情況下端口爲9000,你還可以通過下面的命令指定配置文件和端口:
> bin/kafka-manager -Dconfig.file=/path/to/application.conf -Dhttp.port=8080
如果沒有配置Java的環境變量,還可以通過下面的方式指定Java8的目錄:
> bin/kafka-manager -java-home /usr/local/oracle-java-8
啓動後,從瀏覽器打開,顯示如下:
四、配置集羣
點擊【Cluster】>【Add Cluster】打開如下添加集羣的配置界面:
輸入集羣的名字(如Kafka-Cluster-1
)和 Zookeeper 服務器地址(如localhost:2181
)。
選擇最接近的Kafka版本(如0.10.1.0
)。
注意:如果沒有在 Kafka 中配置過 JMX_PORT,千萬不要選擇第一個複選框。
Enable JMX Polling
如果選擇了該複選框,Kafka-manager 可能會無法啓動。
其他broker的配置可以根據自己需要進行配置,默認情況下,點擊【保存】時,會提示幾個默認值爲1
的配置錯誤,需要配置爲>=2
的值。保存成功後,提示如下。
點擊【Go to cluster view.】打開當前的集羣界面。
在集羣界面顯示了主題和Broker的個數,點擊數字可以查看具體的信息。
同時在頂部多了好幾個菜單,可以查看集羣、Broker、主題等信息。
五、新建主題
點擊【Topic】>【Create】可以方便的創建並配置主題。如下顯示。
這裏只在Topic中輸入t1
(或其他名字),分區和複製因子這裏簡單說明一下,詳細的可以查看官方介紹。
在上圖一個Kafka集羣中,有兩個服務器,每個服務器上都有2個分區。P0,P3可能屬於同一個主題,也可能是兩個不同的主題。
如果設置的Partitons和Replication Factor都是2,這種情況下該主題的分步就和上圖中Kafka集羣顯示的相同,此時P0,P3是同一個主題的兩個分區。P1,P2也是同一個主題的兩個分區,Server1和Server2其中一個會作爲Leader進行讀寫操作,另一個通過複製進行同步。
如果設置的Partitons和Replication Factor都是1,這時只會根據算法在某個Server上創建一個分區,可以是P0~4中的某一個(分區都是新建的,不是先存在4個然後從中取1個)。
這裏我們都設置爲1,點擊【Create】然後進入創建的這個主題,顯示如下。
這裏顯示了主題的基本信息,在右側中間的Broker這裏顯示了當前的Broker Id爲0,分區數爲1,如果集羣中存在多個服務,在創建該主題時,不一定會分配到哪個Broker。
這個頁面的右上部分顯示了針對主題的一些操作。這些操作相對命令的方式簡單和直觀了很多。
六、其他操作
關於kafka-manager的其他功能和操作可以參考官網:https://github.com/yahoo/kafka-manager。