Kerberos java到配置单元密钥表身份验证,登录失败UserGroupInformation.loginUserFromKeytab
我试图将kerberos密钥表身份验证工作从java转移到配置单元,但没有找到解决方案来解决这个问题Kerberos java到配置单元密钥表身份验证,登录失败UserGroupInformation.loginUserFromKeytab,login,hive,kerberos,metastore,keytab,Login,Hive,Kerberos,Metastore,Keytab,我试图将kerberos密钥表身份验证工作从java转移到配置单元,但没有找到解决方案来解决这个问题 org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration(); conf.set("hadoop.security.authentication", "kerberos"); conf.set(HiveClientFactory.HIVE_M
org.apache.hadoop.conf.Configuration conf = new
org.apache.hadoop.conf.Configuration();
conf.set("hadoop.security.authentication", "kerberos");
conf.set(HiveClientFactory.HIVE_METASTORE_URIS,"thrift://{URL}");
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab(krbPrincipal, keyTabPath);
java.io.IOException:keytab中{krbPrincipal}的登录失败
{keyTabPath}at
org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:855)
原因:javax.security.auth.login.login异常:无法获取
来自用户的密码
在
com.sun.security.auth.module.Krb5LoginModule.promptForPass(Krb5LoginModule.java:789)
在
com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.java:654)
我非常希望能有一些见解来帮助解决这个问题。您的问题是关于HDFS Kerberos身份验证的,但代码示例(可能还有错误消息)是关于Hive Metastore Kerberos身份验证的。请记住,Oozie使用特定的“HCat凭据”部分进行元存储身份验证…感谢您的建议,更正了问题,Oozie的配置单元操作一直在使用HCat凭据,但是Oozie的Java操作-Java类使用配置单元\元存储在内部调用配置单元(请参阅问题中的代码片段)它失败了,错误为java.io.IOException:keytab{keytabath}中的{krbPrincipal}登录失败好了,现在我明白了。您尝试使用Hadoop身份验证机制连接到Metastore(Thrift服务)或HiveServer2(再次连接Thrift)。AFAIK它不起作用,因为Thrift客户端直接调用低级JAAS/GSSAPI身份验证库。换句话说,它似乎符合Kerberos,但不支持Hadoop。还包括中的讨论(特别是跟踪标志…)