栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

史上最全—kafka-manager配置及安装Kerberos(Ambari-HDP)认证

史上最全—kafka-manager配置及安装Kerberos(Ambari-HDP)认证

本文用的Ambari的kafka 配置kafka-manager。 CDH、开源也可以步骤一样。 kafka为开启kerberos认证的。 kafka-manager作用 首先看一下kafka-manager作用:
管理多个集群
轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发)
运行首选副本选举
使用选项生成分区分配以选择要使用的代理
运行分区重新分配(基于生成的分配)
使用可选主题配置创建主题(0.8.1.1具有与0.8.2+不同的配置)
删除主题(仅支持0.8.2+并记住在代理配置中设置delete.topic.enable = true)
主题列表现在指示标记为删除的主题(仅支持0.8.2+)
批量生成多个主题的分区分配,并可选择要使用的代理
批量运行重新分配多个主题的分区
将分区添加到现有主题
更新现有主题的配置
可随意开启对broker级别或者对topic级别的JMX轮询
可方便的过滤出没有id 、所有者、延迟或目录等的消费者
编译安装包 首先下载编译安装包: wget https://github.com/yahoo/kafka-manager/archive/2.0.0.2.tar.gz #解压
tar -xvf 2.0.0.2.tar.gz
#我这边名字为:CMAK-2.0.0.2。咱给他改个名字:kafka-manager-2.0.0.2
mv CMAK-2.0.0.2/ kafka-manager
安装sbt包 因为编译的时候需要sbt  如果没有就会报如下的错: 我们来安装下
curl -L https://www.scala-sbt.org/sbt-rpm.repo > sbt-rpm.repo
放入yum 放在yum源中然后去安装 sudo mv sbt-rpm.repo /etc/yum.repos.d/ sudo yum install sbt (另外还有一种方法 ) 去获取他的jar放他指定目录 wget http://maven.aliyun.com/nexus/content/repositories/central/org/scala-sbt/sbt-launch/1.1.1/sbt-launch-1.1.1.jar 开始编译kafka-manager 开始编译(必要要求有外网 可以联网)
#进入kafka - manager目录
cd /opt/kafka-manager
#开始编译
./sbt clean dist

编译时间比较长 如果有需要直接编译好的包 可以使用如下的。(本文使用的包) 编译好的kafka-manager包 已经编译好的 kafka-manager包: kafka-manager-2.0.0.2 配置kafka-manager配置 解压好 然后修改配置文件 修改conf/application.conf

文件中zk的地址以及启用Kafka-Manager使用账号登录和消费者的配置(由于不能编译红色字体 都用#提醒啦)

kafka-manager.zkhosts="hadoop01:2181" #这里注意下
kafka-manager.zkhosts=${?ZK_HOSTS}
pinned-dispatcher.type="PinnedDispatcher"
pinned-dispatcher.executor="thread-pool-executor"
application.features=["KMClusterManagerFeature","KMTopicManagerFeature","KMPreferredReplicaElectionFeature","KMReassignPartitionsFeature"]


akka {
  loggers = ["akka.event.slf4j.Slf4jLogger"]
  loglevel = "INFO"
}


akka.logger-startup-timeout = 60s


basicAuthentication.enabled=true #这里改成true
basicAuthentication.enabled=${?KAFKA_MANAGER_AUTH_ENABLED}


basicAuthentication.ldap.enabled=false
basicAuthentication.ldap.enabled=${?KAFKA_MANAGER_LDAP_ENABLED}
basicAuthentication.ldap.server=""
basicAuthentication.ldap.server=${?KAFKA_MANAGER_LDAP_SERVER}
basicAuthentication.ldap.port=389
basicAuthentication.ldap.port=${?KAFKA_MANAGER_LDAP_PORT}
basicAuthentication.ldap.username=""
basicAuthentication.ldap.username=${?KAFKA_MANAGER_LDAP_USERNAME}
basicAuthentication.ldap.password=""
basicAuthentication.ldap.password=${?KAFKA_MANAGER_LDAP_PASSWORD}
basicAuthentication.ldap.search-base-dn=""
basicAuthentication.ldap.search-base-dn=${?KAFKA_MANAGER_LDAP_SEARCH_base_DN}
basicAuthentication.ldap.search-filter="(uid=$capturedLogin$)"
basicAuthentication.ldap.search-filter=${?KAFKA_MANAGER_LDAP_SEARCH_FILTER}
basicAuthentication.ldap.connection-pool-size=10
basicAuthentication.ldap.connection-pool-size=${?KAFKA_MANAGER_LDAP_CONNECTION_POOL_SIZE}
basicAuthentication.ldap.ssl=false
basicAuthentication.ldap.ssl=${?KAFKA_MANAGER_LDAP_SSL}


basicAuthentication.username="admin" #输入账号
basicAuthentication.username=${?KAFKA_MANAGER_USERNAME}
basicAuthentication.password="admin" #输入密码
basicAuthentication.password=${?KAFKA_MANAGER_PASSWORD}


basicAuthentication.realm="Kafka-Manager"
basicAuthentication.excluded=["/api/health"] # ping the health of your instance without authentification

kafka-manager.consumer.properties.file=/usr/hdp/3.1.5.0-152/kafka/conf/consumer.properties #重新指定这个配置 如下那个注销了
#kafka-manager.consumer.properties.file=${?CONSUMER_PROPERTIES_FILE} #这个配置注销了

添加conf/consumer.properties配置
security.protocol=SASL_PLAINTEXT
key.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer
value.deserializer=org.apache.kafka.common.serialization.ByteArrayDeserializer
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka

创建jass文件 在kafka-manager/conf 的目录创建jaas.conf  然后把keytab文件也cp过来
# Clinet段用于连接zookeeper认证
#KafkaClient用于连接kafka服务器认证


Client{
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  keyTab="/opt/kafka-manager/conf/kafka.service.keytab"
  principal="kafka/hadoop01@HADOOP.COM"
  serviceName="kafka"
  donotprompt=true;
};
KafkaClient{
  com.sun.security.auth.module.Krb5LoginModule required
  useKeyTab=true
  keyTab="/opt/kafka-manager/conf/kafka.service.keytab"
  principal="kafka/hadoop01@HADOOP.COM"
  serviceName="kafka"
  donotprompt=true;
};

启动脚本 添加启动脚本:/opt/kafka-manager/scripts/rm.sh
#!/bin/bash
echo '-------------------------------------------------------------------分界线'$(date +%F%t%T)> manager.out


# 配置kafka-manager元数据使用的zookeeper,此处必须是用export
export ZK_HOSTS=hadoop01:2181
# kafka-manager 路径
MANAGER_HOME=/opt/kafka-manager
# 可执行文件路径
KAFKA_MANAGER=$MANAGER_HOME/bin/kafka-manager
# 日志位置
APP_HOME=-Dapplication.home=$MANAGER_HOME
# 端口
HTTP_PORT=-Dhttp.port=9001


# SASL安全认证
JAAS_CONF=-Djava.security.auth.login.config=$MANAGER_HOME/conf/jaas.conf
KRB5_CONF=-Djava.security.krb5.conf=$MANAGER_HOME/conf/krb5.conf


nohup  $KAFKA_MANAGER $JAAS_CONF $KRB5_CONF $APP_HOME $HTTP_PORT >manager.out 2>&1 &


echo "$!"
tailf manager.out

启动rm.sh 启动的时候调用rm.sh脚本
./rm.sh

17889 这是kafka-manger的pid

访问kafka-manager WEB UI

访问http://hadoop01:9001/ 地址 

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

添加kafk配置

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

配置:

kafka开启JMX

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

vim /usr/hdp/3.1.5.0-152/kafka/bin/kafka-server-start.sh
#打开JMX端口

export JMX_PORT=9999

放开头就行

然后去重启kafka

检测kafka-manager端口
lsof -i:9999

因为开启了kerberos 所以选择认证模式。

save保存 然后去查看

查看topic状态

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

FAQ 编译问题

如果编译有问题 :

获取不到sbt需要的依赖

首先我们把sbt-launch.jar这个包拿下来。默认路径:/root/.sbt/launchers/1.2.8

然后用解压缩文件打开。

我这边用的小茶壶

在sbt下面有个文件:sbt.boot.properties

更改一下repositories ,也就是yum源下载依赖的地方。

[repositories]

  local

  aliyun: http://maven.aliyun.com/nexus/content/groups/public/

  central: http://repo1.maven.org/maven2/

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/784175.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号