我遇到了一个非常奇怪的问题
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集群找不到该条目。有人知道原因吗?
答案 0 :(得分: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
答案 1 :(得分:0)
我想向您推荐一些尝试的方法。
设置KAFKA_OPTS
export KAFKA_OPTS =“-Djava.security.auth.login.config = / etc / kafka / kafka_sink_jaas.conf”
在您的代码中添加以下内容
storageReference.child(firebaseAuth.getUid()).child("Images/Profile Pic")...
希望这会有所帮助。
答案 2 :(得分:0)
在本地运行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创建了一个密钥表文件。它似乎总是在向用户添加域名,例如MyUserId@somedomain.com。有办法避免这种情况吗?