直线找不到私有方法“getkeytab”

41zrol4v  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(381)

我正在尝试使用beeline连接到具有kerberos身份验证的配置单元。我已经用初始化了一张票 kinit -V --kdc-hostname=<HOSTNAME> -kt /etc/krb5.keytab <USER@REALM> 我可以看到它在我跑步的时候是活跃的 klist 但当我尝试连接到hive时,会收到一条众所周知的错误消息: 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找不到我的keytab文件。

z18hc3ub

z18hc3ub1#

最可能的问题是直线命令。
确保正确提供身份验证参数,并在连接字符串周围加双引号。 beeline -u "jdbc:hive2://HOSTNAME:10000/default;principal=hive/hostname@Example.com" 还要检查kerberos主体是否具有访问配置单元的权限。

相关问题