使用ugi重写当前hadoopkerberos用户

lc8prwob  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(308)

我的应用程序在Web服务器上运行,但Web服务器用户没有kerberos帐户。。所以当启动springhadoop配置时,它失败了。我确实有另一个kerberos用户有一个keytab文件,我可以用它登录,但在我有机会登录之前,spring已经尝试用当前linux用户设置配置,但失败了。这就是我使用其他用户的方式

UserGroupInformation.loginUserFromKeytab(userId, userKeyTabFilePath);

目前我正在从webapplicationinitializer.onstartup方法调用它,但是它仍然无法设置spring hadoop的配置(可能是文件系统),因为它没有使用我在这里登录的用户。如何重写spring设置hadoop配置过程,将此用户作为登录用户而不是当前linux用户提供。
任何帮助都将不胜感激。

h79rfbju

h79rfbju1#

用kerberos配置hadoop是一个真正的难题。解决这个问题最简单的方法是使用jaas.conf运行应用程序,除了使用ugi之外,jaas.conf还具有必要的凭证和keytab。
下面是一个配置示例:

Client {
 com.sun.security.auth.module.Krb5LoginModule required
 useKeyTab=true
 keyTab="/etc/tomcat/<keytab>"
 storeKey=true
 useTicketCache=false
 principal="<user>@<host>";
};

通过

-Djava.security.auth.login.config=<path to jaas.conf>

vm param到您的web应用程序容器。
我假设您的spring配置已经从hadoop加载了*-site.xml文件。这也是必要的。

相关问题