概要描述
目前,TDH 6.2.2 及以下的版本中的 Kafka,对应的都是开源的0.10.2版本。多数情况下,我们推荐开启 Kerberos 安全认证进行使用,参考:kafka开启Guardian安全后Slipstream接收Kafka消息操作步骤
在一些场景中,可能需要关闭 Kafka 的安全认证。下文介绍如何在集群中关闭 Kafka 安全。
详细说明
常规情况下,关闭 kafka 安全的前提是要关闭 zookeeper 的安全,本文介绍一种方法,通过修改配置,达到不关闭 zookeeper 安全,依然可以跳过认证的方法。
- 关闭 Zookeeper 安全(如果不满足该条件,可以跳过这一步)
- 关闭Kafka 安全
- 修改 Kafka 配置
- 修改 Zookeeper 配置
- 如果Kafka没有数据,建议在Zookeeper中删除Kafka 信息,重新初始化(谨慎操作)
1、关闭 Zookeeper 安全(如果不满足该条件,可以跳过这一步)
我们不推荐单独关闭 Kafka 的安全,如果kafka、HDFS、Hyperbase 等组件依赖同一个 Zookeeper,此时只能关闭整个集群的安全,来实现关闭 kafka 安全认证目的;
集群关闭安全:
Guardian 组件页面–更多操作–启用/关闭 Guardian 安全–Guardian 安全(关闭)–Guardian 插件(关闭)–确认
或者 Kafka 所依赖的 Zookeeper 是单独的,不存在其他依赖关系,此时需要将 kafka 和 Zookeeper 安全一同关闭,关闭安全操作如图:
Zookeeper 关闭安全:
2、关闭Kafka 安全
如果无法满足关闭 Zookeeper 安全的条件,可以通过修改Zookeeper 配置达到允许未认证连接的目的,操作参考:
TDH 6.2.1版本开启/关闭Zookeeper强认证
Manager 页面关闭 Kafka 的 Kerberos 安全。
3、修改 Kafka 配置
Kafka 配置参数页面,将 listeners 和 advertised.listeners 改为 PLAINTEXT://hostname:port,可以通过“恢复默认值”快速还原,如图:
listeners
advertised.listeners
修改完后,保存,配置服务,再次重启 Kafka 生效
4、修改 Zookeeper 配置
在 Zookeeper 的配置项中加上 skipACL=yes,配置服务重启生效,如图:
开过安全的 Kafka,Zookeeper 里的 znode 信息会存在‘sasl,’kafka: cdrwa的 acl 权限,此步骤是不进行acl 校验,防止出现后续非安全情况下使用的权限问题。
5、如果Kafka没有数据,建议在Zookeeper中删除Kafka 信息,重新初始化(谨慎操作)
进入 Zookeeper
export CLIENT_JVMFLAGS="-Dtranswarp.maintenance.only.mode=true"
source TDH-Client/init.sh
zookeeper-client -server zkhost:2181
删除数据
rmr /kafka-acl-changes
rmr /controller_epoch
rmr /isr_change_notification
rmr /kafka-acl
rmr /controller
rmr /brokers
配置服务重启kafka