java - 我们可以使用多个 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);
但它也给出了同样的错误我如何实现这些
解决方案
推荐阅读
- java - 抽象类 getter 和 setter 用法 [V2]
- sql - 如何在sql中的条件下具有单个列的不同值?
- api - 颤振:未处理的异常:无效的参数
- elasticsearch - 使用elasticsearch sink connector 将数据馈入ElasticSearch,一直超时,最终需要手动重启
- php - 数组中的php类
- java - 如何在 SonarQube 中验证类的不变性?
- python - Python wikipedia.page 丢弃字母 h
- angular - 我如何模拟 id = this.route.snapshot.params.id; 在角度?
- kotlin - 无法解析 Kotlin Multiplatform 中的 cinterop IOS 导入
- elasticsearch - Elasticsearch 英语词干无法正常工作