好久沒發過kafka的文章了,今天整理一下kafka-manager神器。
java環境要求
jdk8
kafkamanager源碼下載
https://github.com/yahoo/kafka-manager/releases
編譯
先修改sbt源,否則會報錯,而且非常慢
在~/.sbt目錄下增加一個文件repositories,內容如下:
, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
ib: http://maven.ibiblio.org/maven2/
ib-ivy: http://maven.ibiblio.org/maven2/ , [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
mt-mdh:.sbt meitu$ pwd
/Users/meitu/.sbt
修改源之后編譯速度很快而且無故障。
編譯是在/opt/hadoop/kafka-manager-1.3.3.18/目錄下執行:
要求jdk8假如不是jdk8,可以直接指定路徑:
8/bin:$PATH \
JAVA_HOME=/usr/local/oracle-java-8 \
/path/to/sbt -java-home /usr/local/oracle-java-8 clean dist
最后出現
package is ready in /opt/hadoop/kafka-manager-1.3.3.18/target/universal/kafka-manager-1.3.3.18.zip
[info]
[success] Total time: 60 s, completed 2018-9-10 13:58:04
代表編譯成功,zip生成目錄是在
1.3.3.18/target/universal/kafka-manager-1.3.3.18.zip
在配置conf/application.conf 中加入zookeeper的地址,不一定是kafka的集群zk地址
"localhost:2181"
啟動,不加-Dhttp.port參數默認是9000
加入java不是jdk8的話也可以單獨指定jdk為jdk8
8
kafkamanager的經典作用
1. 管理多集群
2. 便捷的監控集群狀態(topics,consumers,offsets,brokers,副本分布,分區分布)
3. 運行優先副本選舉
4. 可以選擇指定的broker去產生副本分布策略。
5. 運行分區分布策略,根據4產生的分布策略
6. 根據自定義配置創建topic
7. 刪除topic,但是前提是配置kafka的delete.topic.enable=true
8. 可以選擇多個topic,然后指定特定的brokers,生成分區分布策略
9. 批量運行8生成的策略
10. 增加已存在topic的分區
11. 更新已存在topic的配置
12. 加入kafka開啟jmx的話,可以監控broker和topic級別的監控指標。
kafka manager圖解說明
首先創建集群
接着在topic管理界面
然后就是消費者界面
主要關注的是圖上所屬指標,建議大家使用測試,當然非常建議按照本文操作一遍,但是不想編譯或者編譯不成功也可以,關聯詞大全在公眾號恢復 1024 獲取浪院長編譯好的。
kafka 開啟jmx的方式很簡單在kafka-server-start.sh中修改如下
export JMX_PORT="9999"
fi
?
當然,在這里強調一下,對於kafka集群,雖然不耗內存,也建議將kafka的堆內存設置稍微大些。當然,對於很多公司,數據量不足以觸發kafka節點內存不夠導致的故障。
推薦閱讀:
消息隊列服務Kafka揭秘:痛點、優勢以及適用場景
關於Spark Streaming感知kafka動態分區的問題
Kafka源碼系列之源碼分析zookeeper在kafka的作用
文章來源:https://blog.csdn.net/rlnLo2pNEfx9c/article/details/82599220