> 文章列表 > 【Kafka-Kerberos下执行shell命令】Kafka在Kerberos环境下如何操作shell命令

【Kafka-Kerberos下执行shell命令】Kafka在Kerberos环境下如何操作shell命令

【Kafka-Kerberos下执行shell命令】Kafka在Kerberos环境下如何操作shell命令

【Kafka-Kerberos下执行shell命令】Kafka在Kerberos环境下如何操作shell命令

  • 1)jaas.conf
  • 2)client.properties
  • 3)执行命令

当大数据集群部署了 Kerberos 认证操作之后,在服务器上操作 kafka shell 命令就会出现认证相关的异常,如:

未配置 jaas.conf 导致的异常:

【Kafka-Kerberos下执行shell命令】Kafka在Kerberos环境下如何操作shell命令

未指定 client.properties 配置文件导致的超时:
【Kafka-Kerberos下执行shell命令】Kafka在Kerberos环境下如何操作shell命令

所以需要我们进行相关认证操作才可以正常执行 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文件