【问题标题】:Kafka jaas verify failed on Flink clusterKafka jaas 在 Flink 集群上验证失败
【发布时间】:2019-04-07 19:32:41
【问题描述】:

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

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 Beam KafkaIO 使用来自 kafka 的记录时,在单节点 Apache Flink 集群上。 JAAS 文件包含“KafkaClient”,但 Flink 集群找不到该条目。有谁知道造成的原因吗?

【问题讨论】:

  • 当我在flink本地机器上运行应用程序时,这个问题不存在!所以我猜原因是flink集群!

标签: java apache-kafka apache-flink apache-beam jaas


【解决方案1】:

在本地运行 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

我还使用 klist 创建了一个 keytab 文件。它似乎总是与用户一起添加一个域名,例如MyUserId@somedomain.com。有没有办法避免这种情况?

【讨论】:

  • kafka.keytab是kafka用户的keytab文件。如果你使用你的keytab,你应该设置security.kerberos.login.principal:MyUserId。而security.kerberos.login.contexts只有客户。
【解决方案2】:

我已经解决了这个问题。这是由 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

【讨论】:

    【解决方案3】:

    我想建议你尝试一些事情。

    设置 KAFKA_OPTS

    导出 KAFKA_OPTS="-Djava.security.auth.login.config=/etc/kafka/kafka_sink_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")
    

    希望这会有所帮助。

    【讨论】:

    • 我试过你的建议,但不能解决我的问题!
    猜你喜欢
    • 2022-09-23
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    • 2021-02-21
    • 2018-11-08
    • 2011-12-09
    • 2015-11-23
    • 2017-07-26
    相关资源
    最近更新 更多