前提:操作机已经通过kinit -kt方式认证
一、生产者
1、创建jaas.conf,向其添加内容:
KafkaClient{
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=true;
};
2、将jaas.conf添加到环境变量
export KAFKA_OPTS="-Djava.security.auth.login.config=/home/klapp/jaas.conf"
3、创建生产者配置文件producer.properties,并添加以下内容:
security.protocol=SASL_PLAINTEXT
sasl.kerberos.service.name=kafka
4、开启生产者
kafka-console-producer --broker-list test-hadoop-pc6:9092 --topic ax --producer.config producer.properties
二、消费者
1、创建消费者配置文件consumer.properties,并添加以下内容:
security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka
group.id=test-consumer-group
2、开启消费者
kafka-console-consumer --bootstrap-server test-hadoop-pc6:9092 --topic ax --consumer.config consumer.properties

 

在这里补充下java消费者客户端消费时出现的认证问题,下面看这个错误:

the client is being asked for a password.

下面给出可用的jaas.conf配置

KafkaClient {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    storeKey=true
    keyTab="/root/kafka_client/ax.keytab"
    principal="ax@kunlun.prod";
};

以及消费者客户端的安全认证相关配置

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐