Kafka Manager

半兽人 发表于: 2015-03-10   最后更新时间: 2016-06-12  
  •   80 订阅,5195 游览

Kafka Manager


作为一个分布式的消息发布-订阅系统,Apache Kafka在 Yahoo内部已经被很多团队所使用,例如媒体分析团队就将其应用到了实时分析流水线中,同时,Yahoo整个Kafka集群处理的峰值带宽超过了 20Gbps(压缩数据)。为了让开发者和服务工程师能够更加简单地维护Kafka集群,Yahoo构建了一个基于Web的管理工具,称为Kafka Manager,日前该项目已经在GitHub上开源

通过Kafka Manager用户能够更容易地发现集群中哪些主题或者分区分布不均匀,同时能够管理多个集群,能够更容易地检查集群的状态,能够创建主题,执行首选的副 本选择,能够基于集群当前的状态生成分区分配,并基于生成的分配执行分区的重分配,此外,Kafka Manager还是一个非常好的可以快速查看集群状态的工具。

Kafka Manager使用Scala语言编写,其Web控制台基于Play Framework实现,除此之外,Yahoo还迁移了一些Apache Kafka的帮助程序以便能够与Apache Curator框架一起工作。

安装Kafka Manager需要Kafka 0.8.1.1或者0.8.2-beta、sbt 0.13.x以及Java 7+,同时还必须要配置一个zookeeper的主机用来管理Kafka Manager的状态。如果想要了解更多与安装配置相关的信息,可以点击这里。另外,在HackerNews上还有一些有关于该开源项目的讨论,感兴趣的读者不妨查看这里


Kafka在雅虎

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、重新分配分区。
以下是该集群管理工具的截图:



cluster


Topic List

topic


Topic View

topic


Broker List

topic


Broker View

broker


安装要求

  1. Kafka 0.8.1.1 or 0.8.2.0
  2. sbt 0.13.x
  3. Java 7+


配置

系统最少需要配置zookeepe集群的地址,可以在kafka-manager安装包的conf目录下面的application.conf文件中进行配置。例如:

kafka-manager.zkhosts="my.zookeeper.host.com:2181"

你可以指定多个zookeeper地址,用逗号分隔:

kafka-manager.zkhosts="my.zookeeper.host.com:2181,other.zookeeper.host.com:2181"

另外, 如果你不想硬编码,可以使用环境变量ZK_HOSTS。

ZK_HOSTS="my.zookeeper.host.com:2181"


部署

下面的命令创建一个可部署应用的zip文件。

sbt clean dist

请参阅在生产部署的框架文档。

如果java不在您的路径,或者你需要建立针对特定的Java版本,请使用以下(例子中假设的是Java8):

$ PATH=/usr/local/oracle-java-8/bin:$PATH \
  JAVA_HOME=/usr/local/oracle-java-8 \
  /path/to/sbt -java-home /usr/local/oracle-java-8 dist clean

这确保你的路径中的 java' 和 'javac' 的二进制文件是 oracle 发布的 java8 版本中的。下一步,监听JAVA_HOME 的所有工具,它指向它们的 oracle 发布的 java8 位置。最后,它告诉 sbt 使用 oracle 发布的 java8 位置。


启动服务

解压刚刚的zip文件,然后启动它:

$ bin/kafka-manager

默认情况下,端口为9000。可覆盖,例如:

$ bin/kafka-manager -Dconfig.file=/path/to/application.conf -Dhttp.port=8080

再如果java不在你的路径中,或你需要针对不同的版本,增加-java-home选项:

$ bin/kafka-manager -java-home /usr/local/oracle-java-8


打包

如果你像创建Debian或ROM安装包,你可以使用下面命令打包:


sbt debian:packageBin
sbt rpm:packageBin



信用

Logo/favicon used is from Apache Kafka.

Most of the utils code has been adapted to work with Apache Curator from Apache Kafka.


许可证

Apache Licensed. See accompanying LICENSE file.







发表于: 1年前   最后更新时间: 1年前   游览量:5195
上一条: KafkaOffsetMonitor:监控消费者和延迟的队列
下一条: kafka稳定版本
评论…

  • 我现在打算用kafka0.10.1,那kafka manger还能用吗
    • 心塞,我用了 kafkaoffsetmonitor,但让开发去使用就看不了了,太不稳定了吧,还有Kafka Eagle,有没有稳定性好一点的监控啊
        • ??那我这边为何只成功过一天,然后就废了,我去github里面看到很多人也反应,你是直接使用jar包还是sbt编译的?
            • 那没法子了,不过我运行后web页面上看不到信息,日志里有信息,web调试显示js加载不多,实在不行,我自己编译或者换个工具了,自己编译会有资源加载出错,是吗?
                • 无语了,兄弟,我把那些参数去掉后,只能看到topic看不到消费组,后来脚本来测试,发现可以看到消费组了,但只能查看新生产的,原有的看不了,不过可以了
                  • 评论…
                    • in this conversation
                      提问