gpt4 book ai didi

hadoop - 确定 Apache Spark 作业中的当前 Kerberos 用户

转载 作者:可可西里 更新时间:2023-11-01 16:24:35 28 4
gpt4 key购买 nike

我在支持 Kerberos 的集群 (Cloudera) 上运行 Spark 作业,并希望能够为作业的任何给定运行记录用户的 Kerberos 身份。

(注意这里不是启动job的本地linux用户身份,因为我们使用keytab文件,jaas.conf文件,调用kinit启动脚本。我们可以在启动脚本中记录一个身份,因为我们知道与 key 表一起传递给 kinit 的主体,但是能够在实际的 Spark 作业本身中登录会很好,这样即使一个作业是手动启动的,我们也能可靠地知道它在什么身份下运行)。

一些答案​​表明如下:

import java.security.{AccessController,Principal}
import javax.security.auth.Subject

val acc = AccessController.getContext
val sub = Subject.getSubject(acc)
val principals = sub.getPrincipals

但是返回的 subnull,所以这不起作用。

最佳答案

您需要查看 UserGroupInformation类。

要获取登录用户,您可以使用:

import org.apache.hadoop.security.UserGroupInformation

val user = UserGroupInformation.getLoginUser

res6: org.apache.hadoop.security.UserGroupInformation = USER@REALM (auth:KERBEROS)

关于hadoop - 确定 Apache Spark 作业中的当前 Kerberos 用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45801437/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com