zoukankan      html  css  js  c++  java
  • 管理工具 Kafka Manager

    管理工具 Kafka Manager

     

    一、概述

      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、重新分配分区。

    二、Kafka Manager下载及安装

         项目地址:https://github.com/yahoo/kafka-manager

         这个项目比 https://github.com/claudemamo/kafka-web-console 要好用一些,显示的信息更加丰富,kafka-manager本身可以是一个集群。

         不过kafka-manager也没有权限管理功能。

         下载:

    1
    git clone git@github.com:yahoo/kafka-manager.git

        下载完后,只能源代码你什么也做不了,我们要把项目编译打包,该软件是用Scala语言编写,把有编译打包很麻烦,他依赖于sbt。sbt比较难安装。

    三、sbt安装

        1、下载sbt-0.13.11

             我的服务器是centos 自动安装几次没有成功,我还是选择手动安装。

             请自己到http://www.scala-sbt.org/download.html下载最新版本,我的版本是sbt-0.13.11

        2、建立目录,解压文件到所建立目录

    1
    2
    $ sudo mkdir /opt/scala/sbt
    $ sudo tar zxvf sbt-0.13.11.tgz -C /opt/scala/

      3、建立启动sbt的脚本文件

    1
    2
    3
    4
    5
    6
    7
    /*选定一个位置,建立启动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文件权限

    1
    $ chmod u+x sbt

      4、配置PATH环境变量,保证在控制台中可以使用sbt命令

    1
    2
    3
    $ vim /etc/profile
    /*在文件尾部添加如下代码后,保存退出*/
    export PATH=/opt/scala/sbt/:$PATH

      

    1
    2
    /*使配置文件立刻生效*/
    $ source /etc/profile

       5、测试sbt是否安装成功
              第一次执行时,会下载一些文件包,然后才能正常使用,要确保联网了,下载的过程分很慢。安装成功后显示如下

    1
    sbt sbt-version<br>[info] Set current project to sbt (in build file:/opt/scala/sbt/)<br>[info] 0.13.11

      

    四、编绎打包

    1
    2
    cd kafka-manager
    sbt clean dist

      生成的包会在kafka-manager/target/universal 下面。生成的包只需要java环境就可以运行了,在部署的机器上不需要安装sbt。

          如果打包会很慢的要有点耐心呀,还有可能打包失败,可以考虑配置代理。

    四、Kafka Manager部署

        1、打好包好,在部署机器上解压,修改好配置文件,就可以运行了--解压

    1
    unzip kafka-manager-1.0-SNAPSHOT.zip

     2、修改conf/application.conf,把kafka-manager.zkhosts改为自己的zookeeper服务器地址

    1
    kafka-manager.zkhosts="192.168.1.237:2181"

     3、启动

    1
    2
    cd kafka-manager-1.0-SNAPSHOT/bin
    ./kafka-manager -Dconfig.file=../conf/application.conf

     4、查看帮助 和 后台运行

    1
    2
    ./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

        5、默认http端口是9000,可以修改配置文件里的http.port的值,或者通过命令行参数传递:

    1
    ./kafka-manager -Dhttp.port=9001

    五、sbt 配置代理

        sbt的配置http代理的参考文档:http://www.scala-sbt.org/0.12.1/docs/Detailed-Topics/Setup-Notes.html#http-proxy

        通过-D设置叁数即可:

    1
    java -Dhttp.proxyHost=myproxy -Dhttp.proxyPort=8080 -Dhttp.proxyUser=username -Dhttp.proxyPassword=mypassword

      也可以用下面这种方式,设置一下SBT_OPTS的环境变量即可:

    1
    export SBT_OPTS="$SBT_OPTS -Dhttp.proxyHost=myproxy -Dhttp.proxyPort=myport"

      注意:myproxy,这个值里不要带http前缀,也不要带端口号。

          比如,你的代理是http://localhost:8123,那么应该这样配置:

    1
    export SBT_OPTS="$SBT_OPTS -Dhttp.proxyHost=localhost -Dhttp.proxyPort=8123"
    记住该记住的,忘记该忘记的,改变能改变的,接受不能改变的!
     
     
  • 相关阅读:
    idea + springboot 的java后台服务器通过小米推送
    python编程之禅
    温故而知新-MySQL高级编程
    温故而知新-mysql的一些语法show,describe,explain,fulltext
    温故而知新-PHP文件操作函数
    温故而知新-正则单词和strlen
    php使用tcpdf实现在线PDF功能
    温故而知新-array_walk和sizeof和array_count_values()和extract()
    温故而知新-strtok函数
    mysql中的blob和text区别
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5456133.html
Copyright © 2011-2022 走看看