作者:谢敏灵/辉少
1.文档编写目的
在Kerberos环境中,我们的应用程序通过Java代码来提交任务需要先进行Kerberos凭证的初始化然后进行应用程序的提交,本文档主要讲述Java应用程序长时间运行作业Kerberos不自动重新认证问题
- 测试环境
1.CM和CDH版本为5.15.1
2.操作系统版本为RedHat7.2
3.集群已启用Kerberos
2.问题描述
在使用JDK 8时,在Kerberos环境下应用程序在执行的过程中报以下错误:
Failed on local exception: java.io.IOException: javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
3.问题分析
在Kerberos环境下长时间运行的作业会出现认证失败问题,认证失败是由于Ticket过期导致。Ticket过期是由ticket_lifetime和renew_lifetime两个参数控制,具体分析如下: