高吞吐量的分布式發布訂閱消息系統Kafka-- 管理工具 Kafka Manager


一、概述

      Kafka在雅虎內部被很多團隊使用,媒體團隊用它做實時分析流水線,可以處理高達20Gbps(壓縮數據)的峰值帶寬。
  為了簡化開發者和服務工程師維護Kafka集群的工作,構建了一個叫做Kafka管理器的基於Web工具,叫做 Kafka Manager。這個管理工具可以很容易地發現分布在集群中的哪些topic分布不均勻,或者是分區在整個集群分布不均勻的的情況。它支持管理多個集群、選擇副本、副本重新分配以及創建Topic。同時,這個管理工具也是一個非常好的可以快速瀏覽這個集群的工具。
  該軟件是用Scala語言編寫的。目前(2015年02月03日)雅虎已經開源了Kafka Manager工具。這款Kafka集群管理工具主要支持以下幾個功能:
  1、管理幾個不同的集群;
  2、很容易地檢查集群的狀態(topics, brokers, 副本的分布, 分區的分布);
  3、選擇副本;
  4、產生分區分配(Generate partition assignments)基於集群的當前狀態;
  5、重新分配分區。

二、Kafka Manager下載及安裝

     項目地址:https://github.com/yahoo/kafka-manager

     這個項目比 https://github.com/claudemamo/kafka-web-console 要好用一些,顯示的信息更加豐富,kafka-manager本身可以是一個集群。

     不過kafka-manager也沒有權限管理功能。

     下載:

git clone git@github.com:yahoo/kafka-manager.git

    下載完后,只能源代碼你什么也做不了,我們要把項目編譯打包,該軟件是用Scala語言編寫,把有編譯打包很麻煩,他依賴於sbt。sbt比較難安裝。

 

三、sbt安裝

    1、下載sbt-0.13.11

         我的服務器是centos 自動安裝幾次沒有成功,我還是選擇手動安裝。

         請自己到http://www.scala-sbt.org/download.html下載最新版本,我的版本是sbt-0.13.11

    2、建立目錄,解壓文件到所建立目錄

$ sudo mkdir /opt/scala/sbt
$ sudo tar zxvf sbt-0.13.11.tgz -C /opt/scala/

  3、建立啟動sbt的腳本文件

/*選定一個位置,建立啟動sbt的腳本文本文件,如/opt/scala/sbt/ 目錄下面新建文件名為sbt的文本文件*/
$ cd /opt/scala/sbt/
$ vim sbt
/*在sbt文本文件中添加 
BT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
java $SBT_OPTS -jar /opt/scala/sbt/bin/sbt-launch.jar "$@" 
然后按esc鍵 輸入 :wq 保存退出,注意紅色字體中的路徑可以是絕對路徑也可以是相對路徑,只要能夠正確的定位到解壓的sbt文件包中的sbt-launch.jar文件即可*/

  並修改sbt文件權限

$ chmod u+x sbt 

  4、配置PATH環境變量,保證在控制台中可以使用sbt命令

$ vim /etc/profile
/*在文件尾部添加如下代碼后,保存退出*/
export PATH=/opt/scala/sbt/:$PATH

  

/*使配置文件立刻生效*/
$ source /etc/profile

   5、測試sbt是否安裝成功
          第一次執行時,會下載一些文件包,然后才能正常使用,要確保聯網了,下載的過程分很慢。安裝成功后顯示如下

sbt sbt-version
[info] Set current project to sbt (in build file:/opt/scala/sbt/)
[info] 0.13.11

  

四、編繹打包

cd kafka-manager
sbt clean dist

  生成的包會在kafka-manager/target/universal 下面。生成的包只需要java環境就可以運行了,在部署的機器上不需要安裝sbt。

      如果打包會很慢的要有點耐心呀,還有可能打包失敗,可以考慮配置代理。

四、Kafka Manager部署

    1、打好包好,在部署機器上解壓,修改好配置文件,就可以運行了--解壓

unzip kafka-manager-1.0-SNAPSHOT.zip

 2、修改conf/application.conf,把kafka-manager.zkhosts改為自己的zookeeper服務器地址

kafka-manager.zkhosts="192.168.1.237:2181"

 3、啟動

cd kafka-manager-1.0-SNAPSHOT/bin
./kafka-manager -Dconfig.file=../conf/application.conf

 4、查看幫助 和 后台運行

./kafka-manager -h
nohup ./kafka-manager -Dconfig.file=../conf/application.conf >/dev/null 2>&1 &  

 說明:正常來說,play框架應該會自動加載conf/application.conf配置里的內容,但是貌似這個不起作用,要顯式指定才行。

參考: https://github.com/yahoo/kafka-manager/issues/16

    5、默認http端口是9000,可以修改配置文件里的http.port的值,或者通過命令行參數傳遞:

./kafka-manager -Dhttp.port=9001 

 

五、sbt 配置代理

    sbt的配置http代理的參考文檔:http://www.scala-sbt.org/0.12.1/docs/Detailed-Topics/Setup-Notes.html#http-proxy

    通過-D設置叄數即可:

java -Dhttp.proxyHost=myproxy -Dhttp.proxyPort=8080 -Dhttp.proxyUser=username -Dhttp.proxyPassword=mypassword

  也可以用下面這種方式,設置一下SBT_OPTS的環境變量即可:

export SBT_OPTS="$SBT_OPTS -Dhttp.proxyHost=myproxy -Dhttp.proxyPort=myport"

  注意:myproxy,這個值里不要帶http前綴,也不要帶端口號。

      比如,你的代理是http://localhost:8123,那么應該這樣配置:

export SBT_OPTS="$SBT_OPTS -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8123"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM