管理工具kafka Manager

2021-07-07 10:23:05 浏览数 (1)

一.简介

为了简化开发者和服务工程师维护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

代码语言:javascript复制
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日志显示如下

代码语言:javascript复制
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从

代码语言:javascript复制
akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "INFO"
}

代码语言:javascript复制
akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "INFO"
  logger-startup-timeout = 30s
}

这个问题的原因还可能是代码异步请求没有返回,官方在2.0.2 以上版本加入了patch进行修复;如果还有问题就重启,配置超时可能没有效果

0 人点赞