登录模块控制标志在JAAS配置中不可用-Scala Kafka

问题描述 投票:0回答:2

尝试在连接Kafka时使用kerberos auth时遇到问题。使用scala和我的jaas.config看起来像这样。

[KafkaClient {需要com.sun.security.auth.module.Krb5LoginModuleuseKeyTab = truekeyTab =“ / etc / security / keytabs / storm.service.keytab”storeKey = trueuseTicketCache = falseserviceName =“ kafka”Principal =“ [email protected]”;调试=真client = true; };

线程“主”中的异常org.apache.kafka.common.KafkaException:无法构造kafka使用者在org.apache.kafka.clients.consumer.KafkaConsumer。(KafkaConsumer.java:799)在org.apache.kafka.clients.consumer.KafkaConsumer。(KafkaConsumer.java:615)在org.apache.kafka.clients.consumer.KafkaConsumer。(KafkaConsumer.java:596)在org.apache.spark.sql.kafka010.SubscribeStrategy.createConsumer(ConsumerStrategy.scala:62)在org.apache.spark.sql.kafka010.KafkaOffsetReader.createConsumer(KafkaOffsetReader.scala:314)在org.apache.spark.sql.kafka010.KafkaOffsetReader。(KafkaOffsetReader.scala:78)在org.apache.spark.sql.kafka010.KafkaSourceProvider.createContinuousReader(KafkaSourceProvider.scala:130)在org.apache.spark.sql.kafka010.KafkaSourceProvider.createContinuousReader(KafkaSourceProvider.scala:43)在org.apache.spark.sql.streaming.DataStreamReader.load(DataStreamReader.scala:185)在com.gm.SparkDataIngest.Main $ .main(Main.scala:119)在com.gm.SparkDataIngest.Main.main(Main.scala)

原因:java.lang.IllegalArgumentException:登录模块控制标志在JAAS配置中不可用在org.apache.kafka.common.security.JaasConfig.loginModuleControlFlag(JaasConfig.java:85)在org.apache.kafka.common.security.JaasConfig.parseAppConfigurationEntry(JaasConfig.java:111)在org.apache.kafka.common.security.JaasConfig。(JaasConfig.java:63)在org.apache.kafka.common.security.JaasContext.load(JaasContext.java:148)在org.apache.kafka.common.security.JaasContext.loadClientContext(JaasContext.java:142)在org.apache.kafka.common.network.ChannelBuilders.create(ChannelBuilders.java:119)在org.apache.kafka.common.network.ChannelBuilders.clientChannelBuilder(ChannelBuilders.java:65)在org.apache.kafka.clients.ClientUtils.createChannelBuilder(ClientUtils.java:88)在org.apache.kafka.clients.consumer.KafkaConsumer。(KafkaConsumer.java:713)

scala apache-kafka apache-kafka-streams
2个回答
0
投票

我认为该问题可能是由于未提供堆栈跟踪中提到的JAAS conf而引起的。提供JAAS配置的方法是:

  • 通过客户端属性:sasl.jaas.config
  • 通过Java属性:java.security.auth.login.config

[更多参考,请参考cloudera blogconfulent blogquestion

让我知道是否有帮助!


0
投票

如果您的JAAS配置确实是您所显示的,那么您会出现语法错误-特别是,额外的分号;使解析器失败,因为它找到了第二个配置项有道理。

JAAS配置应该很简单(并注意分号在哪里...

Blurb {
  some.login.module.class status
  option1=value1
  option2="value2"
  ;
};

...或复杂(现在您了解了分号的含义...

Blurb {
  some.login.module.class status
  option1=value1
  option2="value2"
  ;
  other.login.module.class status
  option3=value3
  ;
};
DahDah {
  some.login.module.class status
  option1=value99
  option2="value88"
  ;
};
© www.soinside.com 2019 - 2024. All rights reserved.