【Kafka-Kerberos下执行shell命令】Kafka在Kerberos环境下如何操作shell命令
- 1)jaas.conf
- 2)client.properties
- 3)执行命令
当大数据集群部署了 Kerberos 认证操作之后,在服务器上操作 kafka shell 命令就会出现认证相关的异常,如:
未配置 jaas.conf 导致的异常:
未指定 client.properties 配置文件导致的超时:
所以需要我们进行相关认证操作才可以正常执行 kafka shell。
1)jaas.conf
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true;
};
2)client.properties
security.protocol=SASL_PLAINTEXT
sasl.kerberos.service.name=kafka
3)执行命令
(1)kinit 认证:
#kinit认证
kinit -kt /etc/security/keytabs/x9e.keytab x9e@PRE.X8V.COM
(2)export jaas.conf 文件:
export KAFKA_OPTS="-Djava.security.auth.login.config=/etc/security/keytabs/jaas.conf"
(3)执行命令是指定 client.properties 文件(–command-config方式指定):
#查看topic
kafka-topics --list --bootstrap-server kfk01.pre.x8v.com:9092,kfk01.pre.x8v.com:9092,kfk01.pre.x8v.com:9092 --command-config /etc/security/keytabs/client.properties
注意:
- 执行所有的 kafka shell 命令之前都要进行
kinit 认证
和export jaas.conf
文件 - 执行所有的 kafka shell 命令时都要通过
--command-config
方式指定client.properties
文件