用例:尝试集成Kafka和Druid,以通过KafkaClient将数据从Kafka加载到Druid。
当我们尝试相同时,我们正面临着这个问题。请查找详细信息,并帮助我解决同样的问题。
问题:
Caused by: org.apache.kafka.common.KafkaException: java.lang.IllegalArgumentException: Could not find a 'KafkaClient' entry in the JAAS configuration. System property 'java.security.auth.login.config' is not set
at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:94) ~[?:?]
at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:93) ~[?:?]
at org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:51) ~[?:?]
at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:84) ~[?:?]
at org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:657) ~[?:?]
... 10 more
Caused by: java.lang.IllegalArgumentException: Could not find a 'KafkaClient' entry in the JAAS configuration. System property 'java.security.auth.login.config' is not set
JAAS Conf文件:
KafkaClient {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/hadoop_shared/net/bdnetflow.headless.keytab"
debug=true
storeKey=true
useTicketCache=false
serviceName="kafka"
principal="bdnetflow@HDP_PRD.COX.COM";
};
Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/hadoop_shared/net/bdnetflow.headless.keytab"
debug=true
storeKey=true
useTicketCache=false
serviceName="kafka"
principal="bdnetflow@HDP_PRD.COX.COM";
};
答案 0 :(得分:0)
应用程序必须知道Jaas文件的位置,如上面的注释所述。
您可以通过两种方式指定安全配置文件:
使用-Djava.security.auth.login.config
命令行参数。例如,如果您要运行自己的jaas
来运行程序,
java -Djava.security.auth.login.config=/path/to/yourJaas.conf -jar yourExe.jar
安全属性文件是位于 JRE 的 lib / security 目录中的java.security
文件。
您可以在安全属性文件中将其URL指示为login.config.url.n
属性的值,例如:
login.config.url.1=/path/to/yourJaas.conf
有关更多信息,请在此处查看:https://docs.oracle.com/javase/10/security/java-authentication-and-authorization-service-jaas-reference-guide.htm