当前位置:   article > 正文

【可视化工具】kafka-manager配置及安装Kerberos(Ambari-HDP)认证

kafka-manager

感谢点赞和关注 ,每天进步一点点!加油!

目录

一、概述

二、环境

三、部署kafka-manager

3.1下载

3.2 配置修改

3.3kafka开启JMX

3.4启动CMAK

3.5登录

3.6添加kafka cluster配置

3.7 问题

3.8Topic和Broker信息查看

3.9Topic创建


一、概述


为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager(已改名为 cmak)。

这个管理工具可以很容易地发现分布在集群中的哪些topic分布不均匀,或者是分区在整个集群分布不均匀的的情况。

它支持管理多个集群、选择副本、副本重新分配以及创建Topic。同时,这个管理工具也是一个非常好的可以快速浏览这个集群的工具,有如下功能:

  • 管理多个集群
  • 轻松检查集群状态(主题、消费者、偏移量、代理、副本分布、分区分布)
  • 运行首选副本选择
  • 生成分区分配,带有选择要使用的代理的选项
  • 运行分区重分配(基于生成的分配)
  • 创建一个带有可选主题配置的主题(0.8.1.1与0.8.2+有不同的配置)
  • 删除主题(仅在0.8.2+支持,记住设置Delete .topic。在代理配置中启用=true)
  • 主题列表现在显示标记为删除的主题(仅支持0.8.2+)
  • 批量生成多个主题的分区分配,并可选择要使用的代理
  • 批量运行多个主题的分区重分配
  • 向现有主题添加分区
  • 更新现有主题的配置
  • 可选地为代理级和主题级指标启用JMX轮询。

可选地过滤掉在zookeeper中没有id /所有者/ &偏移量/目录的消费者。

GitHub - yahoo/CMAK: CMAK is a tool for managing Apache Kafka clustersCMAK is a tool for managing Apache Kafka clusters. Contribute to yahoo/CMAK development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/yahoo/CMAK


二、环境


Ambari 集群版本信息

注意:cmak环境要求JDK版本为11

  1. 1、jdk
  2. java version "jdk-11.0.18"
  3. 2、kafka集群信息
  4. 服务器:
  5. 192.168.2.152:6667
  6. 192.168.2.153:6667
  7. 软件:
  8. kafka_2.0.0
  9. zookeeper-3.4.6

三、部署kafka-manager


3.1下载

cmak下载地址为:

https://github.com/yahoo/CMAK/releases/download/3.0.0.6/cmak-3.0.0.6.zip

3.2 配置修改

export JAVA_HOME=/hadoop/software/jdk-11.0.18

因为本地已经添加JDK1.8 环境变量,所以我在启动脚本中添加JDK环境变量

修改cmak中application.conf配置文件:

  1. kafka-manager.zkhosts="192.168.2.152:2181,192.168.2.153:2181"
  2. kafka-manager.zkhosts=${?ZK_HOSTS}
  3. cmak.zkhosts="192.168.2.152:2181,192.168.2.153:2181"
  4. cmak.zkhosts=${?ZK_HOSTS}
  5. ##开启认证
  6. basicAuthentication.enabled=true
  7. basicAuthentication.username="admin"
  8. basicAuthentication.username=${?KAFKA_MANAGER_USERNAME}
  9. basicAuthentication.password="admin"
  10. basicAuthentication.password=${?KAFKA_MANAGER_PASSWORD}
  11. #kafka-manager.consumer.properties.file=${?CONSUMER_PROPERTIES_FILE}
  12. kafka-manager.consumer.properties.file=/hadoop/software/cmak-3.0.0.6/conf/consumer.properties
  13. 添加conf/consumer.properties配置
  14. security.protocol=SASL_PLAINTEXT
  15. key.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer
  16. value.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer
  17. sasl.mechanism=GSSAPI
  18. sasl.kerberos.service.name=kafka
  19. 添加 conf/jaas.conf 配置
  20. Client{
  21. com.sun.security.auth.module.Krb5LoginModule required
  22. useKeyTab=true
  23. keyTab="/etc/security/keytabs/kafka.service.keytab"
  24. principal="kafka/hdp103@WINNER.COM"
  25. serviceName="kafka"
  26. doNotPrompt=true;
  27. };
  28. KafkaClient{
  29. com.sun.security.auth.module.Krb5LoginModule required
  30. useKeyTab=true
  31. keyTab="/etc/security/keytabs/kafka.service.keytab"
  32. principal="kafka/hdp103@WINNER.COM"
  33. serviceName="kafka"
  34. doNotPrompt=true;
  35. };

3.3kafka开启JMX

如果开启JMX轮训 ,必须要在kafka启动脚本中打开JMX端口(kafka节点都打开)

  1. vim /usr/hdp/3.1.4.0-315/kafka/bin/kafka-server-start.sh
  2. export JMX_PORT=9999

然后去重启kafka, 检测kafka-manager端口

3.4启动CMAK

创建启动脚本 startCamk.sh

  1. #!/bin/bash
  2. echo '-------------------------------------------------------------------分界线'$(date +%F%t%T)> manager.out
  3. # 配置kafka-manager元数据使用的zookeeper,此处必须是用export
  4. export ZK_HOSTS=192.168.2.152:2181,192.168.2.153:2181,192.168.2.154:2181
  5. # kafka-manager 路径
  6. MANAGER_HOME=/hadoop/software/cmak-3.0.0.6
  7. # 可执行文件路径
  8. KAFKA_MANAGER=$MANAGER_HOME/bin/cmak
  9. # 日志位置
  10. APP_HOME=-Dapplication.home=$MANAGER_HOME
  11. # 端口
  12. HTTP_PORT=-Dhttp.port=9001
  13. # SASL安全认证
  14. JAAS_CONF=-Djava.security.auth.login.config=$MANAGER_HOME/conf/jaas.conf
  15. KRB5_CONF=-Djava.security.krb5.conf=$MANAGER_HOME/conf/krb5.conf
  16. nohup $KAFKA_MANAGER $JAAS_CONF $KRB5_CONF $APP_HOME $HTTP_PORT >manager.out 2>&1 &
  17. echo "$!"
  18. tailf manager.out

可以先在 前台启动 ,查看是否有报错

./bin/cmak -Djava.security.krb5.conf=./conf/krb5.conf -Djava.security.auth.login.config=./conf/jaas.conf -Dhttp.port=9001

3.5登录

http://192.168.2.154:9000/

之前配置了账号密码(admin/admin) 如果没有改过是(admin/password)

3.6添加kafka cluster配置

当我们第一次打开这个界面的时候 是空白的 要配置 添加集群

配置:zookeeper 地址,后面的namespace 不用加

因为开启了kerberos 所以选择认证模式。save保存 然后去查看

3.7 问题

配置保存失败:kafka manager添加集群出现错误KeeperErrorCode

KeeperErrorCode = Unimplemented for /kafka-manager/mutex Try again.

解决办法

登录到zookeeper客户端,手动创建/ kafka-manager/ mutex / locks和/ kafka-manager / mutex / leases节点

  1. [root@hdp103 ~]# zookeeper-client \
  2. create /kafka-manager/mutex/locks ""
  3. create /kafka-manager/mutex ""
  4. create /kafka-manager/mutex/leases ""

3.8Topic和Broker信息查看

Summary 页面 可以看到 ,zk连接信息、kafka 版本信息、Topic和Brokers个数。

查看topic状态,面上可以查看到Broker信息 topic状态

点击 List 可以查看 Topics 清单

查看 topic kangtest 的详细信息

3.9Topic创建

其他参数配置,默认

topic list 查看 topic kangll-manager-test 创建成功

命令行查看 topic

接下来我们根据一张图理解上面的设置:


在上图一个Kafka集群中,有两个服务器,每个服务器上都有2个分区。P0,P3可能属于同一个主题,也可能是两个不同的主题。

如果设置的Partitons和Replication Factor都是2,这种情况下该主题的分布就和上图中Kafka集群显示的相同,此时P0,P3是同一个主题的两个分区。P1,P2也是同一个主题的两个分区,Server1和Server2其中一个会作为Leader进行读写操作,另一个通过复制进行同步。

如果设置的Partitons和Replication Factor都是1,这时只会根据算法在某个Server上创建一个分区,可以是P0~4中的某一个(分区都是新建的,不是先存在4个然后从中取1个)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/670499
推荐阅读
相关标签
  

闽ICP备14008679号