我的应用程序在Web服务器上运行,但Web服务器用户没有kerberos帐户。。所以当启动springhadoop配置时,它失败了。我确实有另一个kerberos用户有一个keytab文件,我可以用它登录,但在我有机会登录之前,spring已经尝试用当前linux用户设置配置,但失败了。这就是我使用其他用户的方式
UserGroupInformation.loginUserFromKeytab(userId, userKeyTabFilePath);
目前我正在从webapplicationinitializer.onstartup方法调用它,但是它仍然无法设置spring hadoop的配置(可能是文件系统),因为它没有使用我在这里登录的用户。如何重写spring设置hadoop配置过程,将此用户作为登录用户而不是当前linux用户提供。
任何帮助都将不胜感激。
1条答案
按热度按时间h79rfbju1#
用kerberos配置hadoop是一个真正的难题。解决这个问题最简单的方法是使用jaas.conf运行应用程序,除了使用ugi之外,jaas.conf还具有必要的凭证和keytab。
下面是一个配置示例:
通过
vm param到您的web应用程序容器。
我假设您的spring配置已经从hadoop加载了*-site.xml文件。这也是必要的。