在flink群集上kafka jaas验证失败

inb24sb2  于 2021-06-06  发布在  Kafka
关注(0)|答案(3)|浏览(1420)

我遇到了一个非常奇怪的问题

Could not find a "KafkaClient" entry in the JAAS configuration. System property "java.security.auth.login.config" is /etc/kafka/kafka_sink_jaas.conf

在单节点apache flink集群上使用apachebeam kafkaio从kafka获取记录。jaas文件包含“kafkaclient”,但flink集群找不到该条目。有人知道原因吗?

gpnt7bae

gpnt7bae1#

我想建议你做一些尝试。
设置Kafka选项
export kafka\u opts=“-djava.security.auth.login.config=/etc/kafka/kafka\u sink\u jaas.conf”
在代码中添加以下内容

System.setProperty("java.security.auth.login.config", "/etc/kafka/kafka_sink_jaas.conf")
System.setProperty("java.security.krb5.conf", "/etc/krb5.conf")
System.setProperty("sun.security.krb5.debug", false)
System.setProperty("javax.security.auth.useSubjectCredsOnly", "false")

希望这会有帮助。

yftpprvb

yftpprvb2#

在本地运行flink时,我使用了这个jaas配置文件。如fred所述,以下命令在集群模式下不起作用。

KafkaClient {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="MyUserId"
    password="MyPwd";
    };

security.kerberos.login.use-ticket-cache: false 
security.kerberos.login.keytab: /etc/kafka/kafka.keytab
security.kerberos.login.principal: kafka@HADOOP.COM
security.kerberos.login.contexts: Client,KafkaClient

如果我们使用kerberos设置,这是正确的吗?security.kerberos.login.principal:myuserid
为了创建一个keytab文件,我使用了klist。它似乎总是添加一个域名与用户例如。myuserid@somedomain.com. 有没有办法避免这种情况?

u4vypkhs

u4vypkhs3#

我已经解决了这个问题。它是由flink集群kerberos配置引起的。只需要在flink-conf上设置一些配置,yaml就可以让它正常工作!
设置如下:

security.kerberos.login.use-ticket-cache: false 
security.kerberos.login.keytab: /etc/kafka/kafka.keytab
security.kerberos.login.principal: kafka@HADOOP.COM
security.kerberos.login.contexts: Client,KafkaClient

相关问题