unnable obtain password from user

问题描述

在大数据集群开启kerberos认证后,使用kerberos票据进行kinit认证通过。但是集群运行yarn任务时报错:

javax.security.auth.login.LoginException: Unable to obtain password from user

产生原因

在kerberos认证的集群下,该问题会经常遇到。其实很简单,是因为使用生成kerberos票据时的linux用户与集群组件匹配不当造成的。比如说:我需要验证集群Hive组件,但是我在生成keytab文件时,是使用的root用户,生成的keytab文件也是root用户及root用户组。和集群hive用户hadoop用户组不同。因此不能访问。

解决方案

两个方案:

其一,把生成的keytab文件权限改大。

chmod 777 ***.keytab

这样,无论是hive组件,还是spark组件都可以访问了。

其二,把文件的属组改了。

chown hive:hadoop ***.keytab

把文件由root:root用户组改为hive:hadoop用户组。这样就可以供Hive访问了。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐