1. 程式人生 > 其它 >管理工具kafka Manager

管理工具kafka Manager

目錄

一.簡介

為了簡化開發者和服務工程師維護Kafka叢集的工作,yahoo構建了一個叫做Kafka管理器的基於Web工具叫做 Kafka Manager
這個管理工具可以很容易地發現分佈在叢集中的哪些topic分佈不均勻,或者是分割槽在整個叢集分佈不均勻的的情況。

它支援管理多個叢集、選擇副本、副本重新分配以及建立Topic。同時,這個管理工具也是一個非常好的可以快速瀏覽這個叢集的工具,有如下功能:

  • 1.管理多個kafka叢集
  • 2.便捷的檢查kafka叢集狀態(topics,brokers,備份分佈情況,分割槽分佈情況)
  • 3.選擇你要執行的副本
  • 4.基於當前分割槽狀況進行
  • 5.可以選擇topic配置並建立topic(0.8.1.1和0.8.2的配置不同)
  • 6.刪除topic(只支援0.8.2以上的版本並且要在broker配置中設定delete.topic.enable=true)
  • 7.Topic list會指明哪些topic被刪除(在0.8.2以上版本適用)
  • 8.為已存在的topic增加分割槽
  • 9.為已存在的topic更新配置
  • 10.在多個topic上批量重分割槽
  • 11.在多個topic上批量重分割槽(可選partition broker位置)

二.安裝

1.安裝依賴並下載包
yum -y install git java-1.8.0-openjdk


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

2.編譯會比較慢
cd kafka-manager
編譯會很慢
./sbt clean distcd target/

可以看到kafka-manager-1.3.3.14
ls target

3.安裝unzip工具並解壓
yum -y install unzip
unzip kafka-manager-1.3.3.14.zip
mv kafka-manager-1.3.3.14 kafka-manager
cd kafka-manager

4.配置,填寫要管理的zk地址
vim conf/application.conf

kafka-manager.zkhosts="192.168.1.35:2181,192.168.1.10:2181"

5.後臺啟動
nohup bin/kafka-manager -Dconfig.file=conf/application.conf -Dhttp.port=7778 &

三.報錯處理

timed out on

這是因為kafka-manager連結zookeeper超時導致的。
檢查kafka-manager的配置檔案application.conf,zookeeper地址是否正確

while starting up loggers

kafka-manager日誌顯示如下

kafka-manager_1 | [WARN] [06/22/2016 15:13:58.525] [main] [EventStream(akka://kafka-manager-system)] Logger log1-Slf4jLogger did not respond within Timeout(5000 milliseconds) to InitializeLogger(bus)
kafka-manager_1 | error while starting up loggers
kafka-manager_1 | akka.ConfigurationException: Logger specified in config can't be loaded [akka.event.slf4j.Slf4jLogger] due to [akka.event.Logging$LoggerInitializationException: Logger log1-Slf4jLogger did not respond with LoggerInitialized, sent instead [TIMEOUT]]
kafka-manager_1 |   at akka.event.LoggingBus$$anonfun$4$$anonfun$apply$1.applyOrElse(Logging.scala:116)
kafka-manager_1 |   at akka.event.LoggingBus$$anonfun$4$$anonfun$apply$1.applyOrElse(Logging.scala:115)
kafka-manager_1 |   at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:36)
kafka-manager_1 |   at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:216)
kafka-manager_1 |   at scala.util.Try$.apply(Try.scala:192)
kafka-manager_1 |   at scala.util.Failure.recover(Try.scala:216)
kafka-manager_1 |   at akka.event.LoggingBus$$anonfun$4.apply(Logging.scala:115)
kafka-manager_1 |   at akka.event.LoggingBus$$anonfun$4.apply(Logging.scala:110)
kafka-manager_1 | Oops, cannot start the server.

解決
調整超時時間
更改配置檔案kafka-manager-1.3.3.6/target/universal/kafka-manager-1.3.3.6/conf/application.conf從

akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "INFO"
}

akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "INFO"
  logger-startup-timeout = 30s
}

這個問題的原因還可能是程式碼非同步請求沒有返回,官方在2.0.2+以上版本加入了patch進行修復;如果還有問題就重啟,配置超時可能沒有效果

本文版權歸作者所有,歡迎轉載,請務必新增原文連結。