从KAFKA KRB5 Kerberos发出FLINK流

问题描述

我正在尝试使用以下方法从flink kafkaconsumer流数据: https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/kafka.html

我的KAFKA在此受Kerberos保护并启用SSL。

我正在EMR 5.31上的纱线群集中运行Flink流。

我收到与REALM KRB5相关的错误

Caused by: org.apache.kafka.common.errors.SaslAuthenticationException:
Failed to create SaslClient with mechanism GSSAPI

Caused by: javax.security.sasl.SaslException: Failure to initialize
security context [Caused by GSSException: Invalid name provided (Mechanism
level: KrbException: Cannot locate default realm)]

我从yaml conf文件中传递了KRB5,例如:

env.java.opts.jobmanager: -Djava.security.krb5.conf=/path/krb5.conf
env.java.opts.taskmanager: -Djava.security.krb5.conf=/path/krb5.conf

我该如何解决?还有另一种通过KRB5的方法吗?

解决方法

已使用--yarn-ship交付了目录conf /。该conf文件夹中包含krb5.conf

,最后,当我从flink-conf.yaml通过相对路径传递它时。如下图所示:

env.java.opts.jobmanager:-Djava.security.krb5.conf =。/ conf / krb5.conf env.java.opts.taskmanager:-Djava.security.krb5.conf =。/ conf / krb5.conf env.java.opts:-Djava.security.krb5.conf =。/ conf / krb5.conf

-yD的其他选项对我不起作用。