对于长时间运行的作业,Kerberos票证无法通过Java代码续订

时间:2017-10-16 08:07:36

标签: hadoop yarn kerberos

我们无法使用java代码从keytab续订kerberos用户票,而它正在使用" kinit -R"

代码:

UserGroupInformation loginUser = UserGroupInformation.getLoginUser(); loginUser.checkTGTAndReloginFromKeytab();

请帮帮我。

1 个答案:

答案 0 :(得分:0)

你是否在流程开始前做了一个kinit? 只有这样才能更新。

您的程序运行在同一用户下的keytab?即用户是否有权更新密钥表。

确切的堆栈跟踪是什么?

也许这对您有用,指向您的密钥表的确切位置。因为当你没有keytab进行更新时,它是无意义的。

import org.apache.hadoop.security.UserGroupInformation;
org.apache.hadoop.conf.Configuration conf = new   
org.apache.hadoop.conf.Configuration();
conf.set("hadoop.security.authentication", "Kerberos");
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab("example_user@IBM.COM", "/path/to/example_user.keytab");