gpt4 book ai didi

hadoop - Kerberized Hadoop Hive Beeline 访问问题

转载 作者:行者123 更新时间:2023-12-02 21:34:37 27 4
gpt4 key购买 nike

我正在尝试通过 beeline 让 hiveserver2 与 kerberized HDP 2.3 集群一起使用。我在亚马逊ec2。

一旦我得到一张可更新的票,我就可以执行 hdfs 操作并启动 mr 作业..

即使 hive cli 不是通过 hive 服务器 2 .. 那也可以..

当我尝试通过直线连接时..我收到一个关于找不到 tgt 的错误..当我在启动直线命令之前实际上有它时

我以自己的用户身份获得票证..但我使用 hive/@ 作为主体..

只是为了测试,我也尝试使用 hives 自己的 keytab 来获取票证.. 没用..

很多文章只建议在启动beeline之前更新 token ..没用

一篇文章建议对 hive 元存储使用不同的主体和 key 表……没有用

Sasl 已按建议启用

这是/etc/krb5.配置:

[logging]

default = FILE:/var/log/krb5libs.log

kdc = FILE:/var/log/krb5kdc.log

admin_server = FILE:/var/log/kadmind.log



[libdefaults]

default_realm = ABC.COM

dns_lookup_realm = false

dns_lookup_kdc = false

ticket_lifetime = 30m

renew_lifetime = 10h

forwardable = true

udp_preference_limit = 1



[realms]

ABC.COM = {

kdc = localhost

admin_server = localhost

default_principal_flags = +renewable

max_renewable_life = 7d 0h 0m 0s

}



[domain_realm]

.abc.com = ABC.COM

abc.com = ABC.COM

门票详情:
$ klist -f
Ticket cache: FILE:/tmp/krb5cc_500
Default principal: ec2-user@ABC.COM

Valid starting Expires Service principal
10/17/15 13:40:26 10/17/15 14:10:26 krbtgt/ABC.COM@ABC.COM
renew until 10/17/15 23:04:27, Flags: FRIT

$ date
Sat Oct 17 13:41:02 EDT 2015

直线连接字符串是:
!connect jdbc:hive2://<hive_host>:10000/default;principal=hive/ip-<hive_host>.ec2.internal@ABC.COM

配置单元服务器 2 的 netstat 输出:
$ sudo netstat -tunlp | grep 10000
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 11272/java

我也尝试过将它绑定(bind)到私有(private)IP..同样的结果..

直线的整个轨迹
Error: Could not open client transport with JDBC Uri: jdbc:hive2://<hive_host>:10000/default;principal=hive/ip-<hive_host>.ec2.internal@ABC.COM: GSS initiate failed (state=08S01,code=0)
0: jdbc:hive2://<hive_host>:10000/default (closed)> 15/10/17 13:06:14 [main]: ERROR transport.TSaslTransport: 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)]
at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:212)
at org.apache.thrift.transport.TSaslClientTransport.handleSaslStartMessage(TSaslClientTransport.java:94)
at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:271)
at org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37)
at org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:52)
at org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:49)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1657)
at org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport.open(TUGIAssumingTransport.java:49)
at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:210)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:180)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:187)
at org.apache.hive.beeline.DatabaseConnection.connect(DatabaseConnection.java:142)
at org.apache.hive.beeline.DatabaseConnection.getConnection(DatabaseConnection.java:207)

关于我所缺少的任何建议?

KMS 是 Ranger KMS

最佳答案

好的解决方案是,在您的系统上执行以下 mkdir/etc/hadoop/conf/
并将其添加到 core-site.xml 下,仅使用此设置

<configuration>  <property>
<name>hadoop.security.authentication</name>
<value>kerberos</value>
</property> </configuration>

这看起来像直线问题?即使我们可以在命令行上指定 auth=kerberos,它仍然需要这个(至少对我有用)!我使用 Ubuntu 操作系统。

关于hadoop - Kerberized Hadoop Hive Beeline 访问问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33190001/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com