Kerberos异常之unnable to obtain password from user

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访问了。

你可能感兴趣的:(Kerberos,hive,kerberos,zookeeper,ambari)