Centos7編譯安裝kafka-manager-2.0.0.2


一、kafka-manager簡介

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

     為了簡化開發者和服務工程師維護Kafka集群的工作,yahoo構建了一個叫做Kafka管理器的基於Web工具,叫做 Kafka Manager。這個管理工具可以很容易地發現分布在集群中的哪些topic分布不均勻,或者是分區在整個集群分布不均勻的的情況。它支持管理多個集群、選擇副本、副本重新分配以及創建Topic。同時,這個管理工具也是一個非常好的可以快速瀏覽這個集群的工具,有如下功能:

  1. 管理kafka集群
  2. 方便集群狀態監控 (包括topics, consumers, offsets, brokers, replica distribution, partition distribution)
  3. 方便選擇分區副本
  4. 配置分區任務,包括選擇使用哪些brokers
  5. 可以對分區任務重分配
  6. 提供不同的選項來創建及刪除topic
  7. Topic list會指明哪些topic被刪除
  8. 批量產生分區任務並且和多個topic和brokers關聯
  9. 批量運行多個主題對應的多個分區
  10. 向已經存在的主題中添加分區
  11. 對已經存在的topic修改配置
  12. 可以在broker level和topic level的度量中啟用JMX polling功能
  13. 可以過濾在ZK上沒有ids/ owners/offsets/ directories的consumer

二、下載kafka-manager源碼包

源碼包下載地址:https://github.com/yahoo/kafka-manager/archive/2.0.0.2.tar.gz

github上沒有提供安裝包,需要我們自行編譯之后在進行安裝,需要現在sbt編譯工具。

再此我已經編譯好安裝包了kafka-manager-2.0.0.2.zip,可以直接下載使用:https://pan.baidu.com/s/10hiEuECfZ6UuI4yIY1dluw

關注微信公眾號回復【卡夫卡】或者【kafka manager】獲取提取碼

看到我這篇文章,就不要去編譯,沒意思還浪費時間,直接從百度網盤鏈接下載編譯好的安裝包就行了,編譯步驟參考一下就行了。

三、安裝sbt-1.3.5

[root@localhost ~]# curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo
[root@localhost ~]# mv bintray-sbt-rpm.repo /etc/yum.repos.d/
[root@localhost ~]# yum install sbt -y

因為Kafka-manager使用的Play框架,為了編譯的速度更快,先配置sbt的maven倉庫,由於默認倉庫速度較慢,因此使用aliyun提供的maven倉庫。

修改倉庫地址:(sbt 默認下載庫文件很慢, 還時不時被打斷,不行的話就重試),我們可以在用戶目錄下創建 touch ~/.sbt/repositories, 填上阿里雲的鏡像   # vi ~/.sbt/repositories  

cd ~
mkdir .sbt
touch ~/.sbt/repositories
vi ~/.sbt/repositories

 內容:

[repositories]
  local
  #oschina: http://maven.oschina.net/content/groups/public/  
  aliyun-nexus: http://maven.aliyun.com/nexus/content/groups/public/
  jcenter: http://jcenter.bintray.com/
  typesafe-ivy-releases: http://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext], bootOnly
  maven-central: http://repo1.maven.org/maven2/

以上配置文件解釋順序是:本地→阿里雲鏡像→jcenter→typesafe-ivy-releases→Maven主鏡像。如果需要添加公司的maven鏡像,可以按照 key: value 的形式添加,key 的命名沒有要求(暫時沒注意到,但是最好也不要用什么特殊符號吧)

驗證:檢查sbt是否安裝成功,查看命令輸出,發現已經成功可以從maven.aliyun.com/nexus下載到依賴即表示成功

sbt -version

需要很長時間~耐心等待,我這里已經執行過了,再次執行顯示如下:

[root@localhost ~]# sbt -version
[info] [launcher] getting org.scala-sbt sbt 1.3.5  (this may take some time)...
:: loading settings :: url = jar:file:/usr/share/sbt/bin/sbt-launch.jar!/org/apache/ivy/core/settings/ivysettings.xml
:: retrieving :: org.scala-sbt#boot-app
	confs: [default]
	81 artifacts copied, 0 already retrieved
[info] [launcher] getting Scala 2.12.10 (for sbt)...
:: retrieving :: org.scala-sbt#boot-scala
	confs: [default]
	6 artifacts copied, 0 already retrieved
sbt version in this project: 1.3.5
sbt script version: 1.3.5

四、解壓編譯kafka-manager源碼包

在【二、下載kafka-manager源碼包】步驟中我們已經已下載了源碼包,

解壓kafka-manager源碼包:

[root@localhost soft]# tar -zxvf kafka-manager-2.0.0.2.tar.gz

解壓后顯示目錄如下

[root@localhost soft]# ll
總用量 56
drwxrwxr-x. 9 root root   109 4月  12 2019 app
-rw-rw-r--. 1 root root  4242 4月  12 2019 build.sbt
drwxrwxr-x. 2 root root   108 4月  12 2019 conf
drwxrwxr-x. 2 root root   156 4月  12 2019 img
-rw-rw-r--. 1 root root 11307 4月  12 2019 LICENSE
drwxrwxr-x. 2 root root    49 4月  12 2019 project
drwxrwxr-x. 5 root root    54 4月  12 2019 public
-rw-rw-r--. 1 root root  8686 4月  12 2019 README.md
-rwxrwxr-x. 1 root root 21353 4月  12 2019 sbt
drwxrwxr-x. 4 root root    37 4月  12 2019 src
drwxrwxr-x. 5 root root    51 4月  12 2019 test

 然后執行:

./sbt clean dist

編譯時間會很長,需要耐心等待,可以到~/.sbt/boot/update.log 查看sbt更新日志。sbt更新好,就開始下載各種jar包,最后看到:[info] Your package is ready in /home/soft/kafka-manager-2.0.0.2/target/universal/kafka-manager-2.0.0.2.zip  證明編譯好了。

我這個已經編譯過了,由於記錄筆記,我再次進行了編譯就很快了,日志如下:

[root@localhost kafka-manager-2.0.0.2]# ./sbt clean dist
Downloading sbt launcher for 1.2.8:
  From  http://repo.scala-sbt.org/scalasbt/maven-releases/org/scala-sbt/sbt-launch/1.2.8/sbt-launch.jar
    To  /root/.sbt/launchers/1.2.8/sbt-launch.jar
Getting org.scala-sbt sbt 1.2.8  (this may take some time)...
:: retrieving :: org.scala-sbt#boot-app
	confs: [default]
	79 artifacts copied, 0 already retrieved (28496kB/1360ms)
Getting Scala 2.12.7 (for sbt)...
:: retrieving :: org.scala-sbt#boot-scala
	confs: [default]
	5 artifacts copied, 0 already retrieved (19715kB/347ms)
[info] Loading settings for project kafka-manager-2-0-0-2-build from plugins.sbt ...
[info] Loading project definition from /home/soft/kafka-manager-2.0.0.2/project
[info] Updating ProjectRef(uri("file:/home/soft/kafka-manager-2.0.0.2/project/"), "kafka-manager-2-0-0-2-build")...
[info] Done updating.
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings.
[info] Loading settings for project root from build.sbt ...
[info] Set current project to kafka-manager (in build file:/home/soft/kafka-manager-2.0.0.2/)
[success] Total time: 0 s, completed 2019-12-25 12:27:23
[info] Packaging /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2-sources.jar ...
[info] Done packaging.
Warning: node.js detection failed, sbt will use the Rhino based Trireme JavaScript engine instead to run JavaScript assets compilation, which in some cases may be orders of magnitude slower than using node.js.
[info] Updating ...
[info] downloading http://maven.aliyun.com/nexus/content/groups/public/org/scala-lang/modules/scala-parser-combinators_2.12/1.0.7/scala-parser-combinators_2.12-1.0.7.jar ...
[info] 	[SUCCESSFUL ] org.scala-lang.modules#scala-parser-combinators_2.12;1.0.7!scala-parser-combinators_2.12.jar(bundle) (2108ms)
[info] Done updating.
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings.
[info] Wrote /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2.pom
[info] Main Scala API documentation to /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/api...
[info] Non-compiled module 'compiler-bridge_2.12' for Scala 2.12.8. Compiling...
[info]   Compilation completed in 38.745s.
model contains 604 documentable templates
[info] Main Scala API documentation successful.
[info] Compiling 131 Scala sources and 2 Java sources to /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/classes ...
[info] Done compiling.
[info] Packaging /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2-javadoc.jar ...
[info] Done packaging.
[info] LESS compiling on 1 source(s)
[info] Packaging /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2.jar ...
[info] Done packaging.
[info] Packaging /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2-web-assets.jar ...
[info] Done packaging.
[info] Packaging /home/soft/kafka-manager-2.0.0.2/target/scala-2.12/kafka-manager_2.12-2.0.0.2-sans-externalized.jar ...
[info] Done packaging.
[success] All package validations passed
[info] Your package is ready in /home/soft/kafka-manager-2.0.0.2/target/universal/kafka-manager-2.0.0.2.zip
[success] Total time: 355 s, completed 2019-12-25 12:33:19

五、安裝kafka-manager

由於使用kafka-manager是在JDK8基礎上的,所以先安裝JDK8,JDK安裝不再敘述。

由於【四、解壓編譯kafka-manager源碼包】步驟已經編譯完成,我們可以把 /home/soft/kafka-manager-2.0.0.2/target/universal/kafka-manager-2.0.0.2.zip 的安裝包移動到你要安裝的地方解壓。

在此我解壓到/usr/local/目錄下

unzip kafka-manager-2.0.0.2.zip -d /usr/local/

解壓后查看目錄如下:

[root@localhost kafka-manager-2.0.0.2]# ll
總用量 28
drwxr-xr-x. 2 root root 4096 12月 25 14:57 bin
drwxr-xr-x. 2 root root  108 12月 25 14:57 conf
drwxr-xr-x. 2 root root 8192 12月 25 14:57 lib
-rw-r--r--. 1 root root 8686 4月  12 2019 README.md
drwxr-xr-x. 3 root root   17 12月 25 14:57 share

接下來就是配置kafka-manager了

vi conf/application.conf 
#修改kafka-manager.zkhosts列表為自己的zk節點
kafka-manager.zkhosts="192.168.184.133:2181"
#添加http訪問端口配置,默認9000
http.port=9090

想要看到讀取,寫入速度需要開啟JMX,修改kafka-server-start.sh 添加一行即可:添加JMX端口8999

if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
    export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G"
    export JMX_PORT="8999"
fi

注意:每個kafka broker都需要修改,修改后進行重啟kafka。

最后,啟動kafka-manager

cd kafka-manager/bin

nohup ./kafka-manager -Dconfig.file=../conf/application.conf >/dev/null 2>&1 & 

六、測試kafka-manager

訪問:http://192.168.184.133:9090/

1、新建Cluster

點擊【Cluster】>【Add Cluster】打開如下添加集群配置界面:輸入集群的名字(如KafkaCluster)和 Zookeeper 服務器地址(如192.168.184.133:2181/kafka),選擇最接近的Kafka版本

其他broker的配置可以根據自己需要進行配置,默認情況下,點擊【保存】時,會提示幾個默認值為1的配置錯誤,需要配置為>=2的值。提示如下。

添加完集群之后查看

topics相關: 

更多頁面功能自己點點就行了。。。

 

更多信息查看github上kafka-manager的README.md:https://github.com/yahoo/kafka-manager/blob/master/README.md


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM