kafka管理神器-kafkamanager
好久没发过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