You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by shakun grover <s2...@gmail.com> on 2017/01/05 09:44:20 UTC

Hive + Kerberos Ticket Issue

When trying to create Hive Jdbc Connection after getting Kerberos ticket
using kinit -k -t command with ProcessBuilder , I am getting below
exception:

java.lang.IllegalStateException: This ticket is no longer valid
at
javax.security.auth.kerberos.KerberosTicket.toString(KerberosTicket.java:638)
at java.lang.String.valueOf(String.java:2847)
at java.lang.StringBuilder.append(StringBuilder.java:128)
at sun.security.jgss.krb5.SubjectComber.findAux(SubjectComber.java:150)
at sun.security.jgss.krb5.SubjectComber.find(SubjectComber.java:59)
at sun.security.jgss.krb5.Krb5Util.getTicket(Krb5Util.java:155)
at
sun.security.jgss.krb5.Krb5InitCredential$1.run(Krb5InitCredential.java:346)
at
sun.security.jgss.krb5.Krb5InitCredential$1.run(Krb5InitCredential.java:344)
at java.security.AccessController.doPrivileged(Native Method)
at
sun.security.jgss.krb5.Krb5InitCredential.getTgt(Krb5InitCredential.java:343)
at
sun.security.jgss.krb5.Krb5InitCredential.getInstance(Krb5InitCredential.java:145)
at
sun.security.jgss.krb5.Krb5MechFactory.getCredentialElement(Krb5MechFactory.java:121)
at
sun.security.jgss.krb5.Krb5MechFactory.getMechanismContext(Krb5MechFactory.java:187)
at
sun.security.jgss.GSSManagerImpl.getMechanismContext(GSSManagerImpl.java:223)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:212)
at sun.security.jgss.GSSContextImpl.initSecContext(GSSContextImpl.java:179)
at
com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:193)
at
org.apache.thrift.transport.TSaslClientTransport.handleSaslStartMessage(TSaslClientTransport.java:94)
at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:253)
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:1548)
at
org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport.open(TUGIAssumingTransport.java:49)
at
org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:203)
at org.apache.hive.jdbc.HiveConnection.<init>(HiveConnection.java:178)
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:215)
at
com.dataguise.agent.hive.util.HiveJDBCClient.<init>(HiveJDBCClient.java:34)


After ticket is generated from code, if I klist on the cmd line I get the
valid ticket. But I am not able to get the JDBC connection after the ticket
is generated.

Moreover If I set system
property -Djavax.security.auth.useSubjectCredsOnly=false then I am able to
get the JDBC Session.

Could anyone help me with this?

Thanks in advance!!

-- 
Thanks & Regards,
Shakun Grover