首页 > 解决方案 > 我们可以使用多个 UserGroupInformation (ugi) 对象来使用 kerberized hadoop 进行身份验证吗?

问题描述

我需要对具有不同领域的两个不同 HDFS 集群进行身份验证。但是当我实例化另一个 UGI 对象时,只有一个工作正常,它给出了错误

UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab(Principal , keytab path);

当我有单个服务主体名称时它工作正常

但是当我有多个 SPN 具有不同的领域时,它会给出一个错误

我的用户 1 和用户 2 属于不同的领域

SPN1 - “hdfs/user1@ALICE.ABC.COM” SPN2 - “hdfs/user2@BOB.ABC.COM”

原因:javax.security.auth.login.LoginException:java.lang.IllegalArgumentException:非法主体名称 org.apache.hadoop.security.authentication.util.KerberosName$NoMatchingRule:未应用规则

但是在这两种情况下都有默认规则

我还在本文档中听说过 Multiple UGI https://bryanbende.com/development/2016/03/20/learning-kerberos-and-ugi

使用多个 UGI

UserGroupInformation.loginUserFromKeytabAndReturnUGI(user, keytab);

但它也给出了同样的错误我如何实现这些

标签: javahadoophdfsmit-kerberos

解决方案


推荐阅读