我正在尝试使用beeline通过Kerberos身份验证连接到Hive。我已经用初始化了一个工单
kinit -V --kdc-hostname=<HOSTNAME> -kt /etc/krb5.keytab <USER@REALM>
当我运行klist时,我可以看到它是活动的,但当我尝试连接到配置单元时,我得到了众所周知的错误消息:
SASL negotiation failure javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
我将log4j级别更改为debug,发现了以下内容:
DEBUG HiveAuthFactory: Cannot find private method "getKeytab" in class:org.apache.hadoop.security.UserGroupInformation
在此之后,beeline尝试使用我的unix用户名进行身份验证,但显然失败了。所以我认为问题在于beeline找不到我的密钥表文件。
发布于 2018-11-29 17:26:08
问题很可能出在beeline命令上。
确保您正确地提供了身份验证参数,并且连接字符串两边有双引号。
beeline -u "jdbc:hive2://HOSTNAME:10000/default;principal=hive/hostname@Example.com"
还要检查您的Kerberos主体是否具有访问配置单元的权限。
https://stackoverflow.com/questions/53533836
复制相似问题