老师可以描述下UserGroupInformation这个类是如何传递yarn客户端的用户信息到hdfs系统上的么
来源:7-7 Hadoop集群HDFS HA配置及测试

Joey_yxy
2023-07-08
不考虑ranger、sentry这些组件的情况下,UserGroupInformation这个类是如何传递yarn客户端的用户信息到hdfs系统上的呢
1回答
-
我在工作中使用到UserGroupInformation的场景有一个,就是在过kerberos认证时
String user="pk";
String keytabPath = "./pk.keytab";
System.setProperty("java.security.krb5.kdc", kdc);
System.setProperty("java.security.krb5.realm", realm);
final Configuration conf = new Configuration();
UserGroupInformation ugi = UserGroupInformation.loginUserFromKeytabAndReturnUGI(userCode, keytabPath);
ugi.doAs(new PrivilegedAction<Object>() {
@Override
public Object run() {
try {
...
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
});
user是用户的名称,
keytabPath是keytab文件的路径,
一般系统是采用kdc生成的验证文件,来进行系统登录。
这里的ugi,就是kerberos的ticket, 是通过 UserGroupInformation.loginUserFromKeytabAndReturnUGI(user,keytabPath); 这个方法
成功后,返回的票据信息,通过这个票据,可以在没过期的情况下,用来访问hadoop系统
10
相似问题