Apache kafka 您必须以安全模式kafka传递java.security.auth.login.config

Apache kafka 您必须以安全模式kafka传递java.security.auth.login.config,apache-kafka,Apache Kafka,我试图在kafka命令下运行(我们使用的是kafka版本0.9)- action-ssl.properties- sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="action" password="1111111"; ssl.endpoint.identification.algorithm= security.proto

我试图在kafka命令下运行(我们使用的是kafka版本0.9)-

action-ssl.properties-

sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="action" password="1111111";
ssl.endpoint.identification.algorithm=
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
ssl.truststore.location=D:\tool\kafka_2.11-0.9.0.0\config\kafka.client.truststore.jks
ssl.truststore.password=11111111
例外情况-

org.apache.kafka.common.KafkaException: Failed to construct kafka producer
        at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:321)
        at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:181)
        at kafka.producer.NewShinyProducer.<init>(BaseProducer.scala:36)
        at kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:46)
        at kafka.tools.ConsoleProducer.main(ConsoleProducer.scala)
Caused by: org.apache.kafka.common.KafkaException: java.lang.IllegalArgumentException: You must pass java.security.auth.login.config in secure mode.
        at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:73)
        at org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:60)
        at org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:80)
        at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:271)
        ... 4 more
Caused by: java.lang.IllegalArgumentException: You must pass java.security.auth.login.config in secure mode.
        at org.apache.kafka.common.security.kerberos.Login.login(Login.java:289)
        at org.apache.kafka.common.security.kerberos.Login.<init>(Login.java:104)
        at org.apache.kafka.common.security.kerberos.LoginManager.<init>(LoginManager.java:44)
        at org.apache.kafka.common.security.kerberos.LoginManager.acquireLoginManager(LoginManager.java:85)
        at org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:55)
        ... 7 more
org.apache.kafka.common.KafkaException:无法构造kafka生产者
位于org.apache.kafka.clients.producer.KafkaProducer.(KafkaProducer.java:321)
位于org.apache.kafka.clients.producer.KafkaProducer.(KafkaProducer.java:181)
卡夫卡。制片人。新闻制作人。(BaseProducer.scala:36)
位于kafka.tools.ConsoleProducer$.main(ConsoleProducer.scala:46)
位于kafka.tools.ConsoleProducer.main(ConsoleProducer.scala)
原因:org.apache.kafka.common.KafkaException:java.lang.IllegalArgumentException:您必须在安全模式下传递java.security.auth.login.config。
位于org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:73)
位于org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:60)
位于org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:80)
位于org.apache.kafka.clients.producer.KafkaProducer.(KafkaProducer.java:271)
... 4更多
原因:java.lang.IllegalArgumentException:您必须在安全模式下传递java.security.auth.login.config。
位于org.apache.kafka.common.security.kerberos.Login.Login(Login.java:289)
位于org.apache.kafka.common.security.kerberos.Login.(Login.java:104)
位于org.apache.kafka.common.security.kerberos.LoginManager.(LoginManager.java:44)
位于org.apache.kafka.common.security.kerberos.LoginManager.acquireLoginManager(LoginManager.java:85)
位于org.apache.kafka.common.network.SaslChannelBuilder.configure(SaslChannelBuilder.java:55)
... 还有7个

您正在使用卡夫卡0.9.0.0。我建议升级到最新版本,但是

0.9.0.0中需要密钥库配置,因为Kafka中存在一个bug,该bug已修复,将包含在0.9.0.1中

最后,我们将JAAS文件的名称作为JVM参数传递给客户机JVM:

正在为windows翻译

set KAFKA_OPTS="-Djava.security.auth.login.config=C:\path\to\kafka_client_jaas.conf"
kafka-console-producer.bat ...

若我升级kafka的版本,它将不需要将jaas文件作为JVM参数传递,问题将得到解决?您仍然需要传递它。它无法神奇地知道JAAS配置是什么
-Djava.security.auth.login.config=/etc/kafka/kafka_client_jaas.conf
set KAFKA_OPTS="-Djava.security.auth.login.config=C:\path\to\kafka_client_jaas.conf"
kafka-console-producer.bat ...