Hive 使用 Kerberos 身份验证连接到 dbvisualizer
Hive connection to dbvisualizer using Kerberos Authentication
我正在使用 windows 机器并尝试使用 hive uber jar 设置带有 DbVisualizer 的 hive。但是得到下面提到的错误。不知道为什么?
https://github.com/timveil/hive-jdbc-uber-jar
我正在使用以下 exe 在 windows 上生成密钥表文件。
http://web.mit.edu/KERBEROS/dist/index.html
以及 github 页面中提到的所有步骤。
如果我使用用户主体,我会收到以下错误。
dbc:hive2://aaa.corp.ad.abc:2181,bbbb.corp.ad.abc:2181,ccc.corp.ad.abc:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;principal=gaurang.shah@CORP.AD.ABC
错误信息
Long Message:
Kerberos principal should have 3 parts: gaurang.shah@CORP.AD.CTC
Details:
Type: java.lang.IllegalArgumentException
Stack Trace:
java.lang.IllegalArgumentException: Kerberos principal should have 3 parts: gaurang.shah@CORP.AD.CTC
at org.apache.hive.service.auth.KerberosSaslHelper.getKerberosTransport(KerberosSaslHelper.java:48)
at org.apache.hive.jdbc.HiveConnection.createBinaryTransport(HiveConnection.java:425)
at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:202)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:166)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
at sun.reflect.GeneratedMethodAccessor69.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.onseven.dbvis.g.B.D.ā(Z:1548)
at com.onseven.dbvis.g.B.F$A.call(Z:1369)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
而且如果我使用下面提到的服务器主体,错误是不同的。
dbc:hive2://aaa.corp.ad.abc:2181,bbbb.corp.ad.abc:2181,ccc.corp.ad.abc:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;principal=krbgt/CORP.AD.ABC@CORP.AD.ABC
错误:
Long Message:
Could not open client transport for any of the Server URI's in ZooKeeper: GSS initiate failed
Details:
Type: java.sql.SQLException
SQL State: 08S01
Samson 在评论中提供的答案对我有用。
using principal as hive/_HOST@CORP.AD.ABC
解决了这个问题。
我正在使用 windows 机器并尝试使用 hive uber jar 设置带有 DbVisualizer 的 hive。但是得到下面提到的错误。不知道为什么? https://github.com/timveil/hive-jdbc-uber-jar
我正在使用以下 exe 在 windows 上生成密钥表文件。 http://web.mit.edu/KERBEROS/dist/index.html
以及 github 页面中提到的所有步骤。
如果我使用用户主体,我会收到以下错误。
dbc:hive2://aaa.corp.ad.abc:2181,bbbb.corp.ad.abc:2181,ccc.corp.ad.abc:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;principal=gaurang.shah@CORP.AD.ABC
错误信息
Long Message:
Kerberos principal should have 3 parts: gaurang.shah@CORP.AD.CTC
Details:
Type: java.lang.IllegalArgumentException
Stack Trace:
java.lang.IllegalArgumentException: Kerberos principal should have 3 parts: gaurang.shah@CORP.AD.CTC
at org.apache.hive.service.auth.KerberosSaslHelper.getKerberosTransport(KerberosSaslHelper.java:48)
at org.apache.hive.jdbc.HiveConnection.createBinaryTransport(HiveConnection.java:425)
at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:202)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:166)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:105)
at sun.reflect.GeneratedMethodAccessor69.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.onseven.dbvis.g.B.D.ā(Z:1548)
at com.onseven.dbvis.g.B.F$A.call(Z:1369)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
而且如果我使用下面提到的服务器主体,错误是不同的。
dbc:hive2://aaa.corp.ad.abc:2181,bbbb.corp.ad.abc:2181,ccc.corp.ad.abc:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;principal=krbgt/CORP.AD.ABC@CORP.AD.ABC
错误:
Long Message:
Could not open client transport for any of the Server URI's in ZooKeeper: GSS initiate failed
Details:
Type: java.sql.SQLException
SQL State: 08S01
Samson 在评论中提供的答案对我有用。
using principal as hive/_HOST@CORP.AD.ABC
解决了这个问题。