高吞吐量的分布式发布订阅消息系统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"
相关文章
相关标签/搜索