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"