Hadoop kerberos票证生存期到期后,独立群集上的Flink作业失败

Hadoop kerberos票证生存期到期后,独立群集上的Flink作业失败,hadoop,kerberos,apache-flink,flink-streaming,Hadoop,Kerberos,Apache Flink,Flink Streaming,我的Flink流媒体作业写入安全hdfs。作业在kinit之后平稳运行,直到kerberos票证生命周期到期。我不能增加现在1d的寿命。 请告诉我该如何处理这个错误 错误日志: Caused by: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Ker

我的Flink流媒体作业写入安全hdfs。作业在kinit之后平稳运行,直到kerberos票证生命周期到期。我不能增加现在1d的寿命。 请告诉我该如何处理这个错误

错误日志:

Caused by: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
        at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:211)
        at org.apache.hadoop.security.SaslRpcClient.saslConnect(SaslRpcClient.java:413)
        at org.apache.hadoop.ipc.Client$Connection.setupSaslConnection(Client.java:554)
        at org.apache.hadoop.ipc.Client$Connection.access$1800(Client.java:369)
        at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:723)
        at org.apache.hadoop.ipc.Client$Connection$2.run(Client.java:719)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:422)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1656)
        at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:718)
        ... 26 more
Caused by: GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)
        at sun.security.jgss.krb5.Krb5InitCredential.getInstance(Krb5InitCredential.java:147)
        at sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement(Krb5MechFactory.java:122)
        at sun.security.jgss.krb5.Krb5MechFactory.getMechanismContext(Krb5MechFactory.java:187)
        at sun.security.jgss.GSSManagerImpl.getMechanismContext(GSSManagerImpl.java:224)
        at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:212)
        at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179)
        at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:192)
        ... 35 more

使用无头键可以让Flink保留更长时间的访问权限。谢谢Ben。Flink正在访问由其他团队维护的外部安全hdfs集群、keytab和kdc服务器。我必须使用提供的键盘。还有其他方法吗?您可以在票证缓存过期之前随时使用“kinit-R”续订票证缓存。但有一个最大次数限制。你可以让kdc经理将你的委托人的过期时间设置为最大值,这样你的票据就永远不会过期。你在HBase、Spark等方面也遇到了同样的问题(除了Spark有一种内置的解决方案…),使用无头键可以让Flink保留更长的访问时间。谢谢Ben。Flink正在访问由其他团队维护的外部安全hdfs集群、keytab和kdc服务器。我必须使用提供的键盘。还有其他方法吗?您可以在票证缓存过期之前随时使用“kinit-R”续订票证缓存。但有一个最大次数限制。您可以要求kdc经理将委托人的过期时间设置为最大值,这样您的票证就永远不会过期。您在HBase、Spark等方面也遇到了同样的问题(除了Spark有一种内置解决方案……)