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

1、概述html

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

2、Kafka Manager下載及安裝git

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

     這個項目比 https://github.com/claudemamo/kafka-web-console 要好用一些,顯示的信息更加豐富,kafka-manager自己能夠是一個集羣。web

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

     下載:centos

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

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

 

3、sbt安裝app

    一、下載sbt-0.13.11框架

         個人服務器是centos 自動安裝幾回沒有成功,我仍是選擇手動安裝。

         請本身到http://www.scala-sbt.org/download.html下載最新版本,個人版本是sbt-0.13.11

    二、創建目錄,解壓文件到所創建目錄

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

  三、創建啓動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 

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

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

  

/*使配置文件馬上生效*/
$ source /etc/profile

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

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

  

4、編繹打包

cd kafka-manager
sbt clean dist

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

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

4、Kafka Manager部署

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

unzip kafka-manager-1.0-SNAPSHOT.zip

 二、修改conf/application.conf,把kafka-manager.zkhosts改成本身的zookeeper服務器地址

kafka-manager.zkhosts="192.168.1.237:2181"

 三、啓動

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

 四、查看幫助 和 後臺運行

./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

    五、默認http端口是9000,能夠修改配置文件裏的http.port的值,或者經過命令行參數傳遞:

./kafka-manager -Dhttp.port=9001 

 

5、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"
相關文章
相關標籤/搜索