您好: 因为业务需要,需要Flink连接CDK(带有kerberos环境下的Kafka Topic)。 同一集群,Flink on Yarn模式,在kerberos环境下申请yarn-session资源通过:yarn-session.sh -n 2 -d -jm 2048 -tm 4096 -qu root.AAAA_AAAA_AAAA -D security.kerberos.login.keytab=AAA.keytab -D security.kerberos.login.principal=AAA, 申请的资源去连接同一集群的CDK,在代码中添加了认证信息: System.setProperty("java.security.krb5.conf", krb5); System.setProperty("java.security.auth.login.config", jaas); System.setProperty("sun.security.krb5.debug", "true"); Properties properties = new Properties(); properties.setProperty("bootstrap.servers", prop.getProperty("KafkaBrokers")); properties.setProperty("group.id", prop.getProperty("GroupId"));
同一集群, 如果申请的yarn-session的认证用户 和 kafka的认证用户是同一个,比如说都是AAA_AAA_AAA.keytab ,那就能成功。 同一集群, 如果申请的yarn-session的认证用户 和 kafka的认证用户是不同用户,比如说都是申请的yarn-session是AAA.keytab,而认证的kafka是BBB.keytab ,那就是失败的。报错:errors.TopicAuthorizationException: Not authorized to access topics[]. 认证不通过。 麻烦问一下这个问题该怎么解决。我在google、百度都没有这方面的资料,然后自己尝试了各种方法,都不行。 感谢感谢!