Reply
Highlighted
Explorer
Posts: 31
Registered: ‎11-24-2017

How to connect to Hive through jdbc

 

Hi everyone, I am trying to get jdbc connection to Hive working (I have to do some hive queries from java program).

I've succesfully established connection to Impala with the following driver and connection string:

 

 

Class.forName("com.cloudera.impala.jdbc4.Driver");

String url = "jdbc:impala://worker01:21050;AuthMech=0"

 

 

But I can't open connection with Hive. I've tried the followings:

 

 

Class.forName("com.cloudera.hive.jdbc4.HS2Driver");

String url = "jdbc:hive2://master:10000;UID=cloudera;PWD=cloudera";


// EXCEPTION ---->

java.sql.SQLException: [Simba][HiveJDBCDriver](500310) Invalid operation: Peer indicated failure: Error validating the login;
	at com.cloudera.hive.hivecommon.api.HiveServer2ClientFactory.createTransport(HiveServer2ClientFactory.java:224)
	at com.cloudera.hive.hive.api.ExtendedHS2Factory.createClient(ExtendedHS2Factory.java:38)
	at com.cloudera.hive.hivecommon.core.HiveJDBCConnection.connect(HiveJDBCConnection.java:597)
	at com.cloudera.hive.jdbc.common.BaseConnectionFactory.doConnect(BaseConnectionFactory.java:219)
	at com.cloudera.hive.jdbc.common.AbstractDriver.connect(AbstractDriver.java:216)
	at java.sql.DriverManager.getConnection(DriverManager.java:664)
	at java.sql.DriverManager.getConnection(DriverManager.java:247)

 

 

 

Class.forName("com.cloudera.hive.jdbc4.HS2Driver");

String url = "jdbc:hive2://master:10000;AuthMech=0";


// EXCEPTION ---->

[Simba][HiveJDBCDriver](500150) Error setting/closing connection: Open Session Error.
at com.cloudera.hive.hive.api.ExtendedHS2Client.openSession(ExtendedHS2Client.java:1107)
at com.cloudera.hive.hivecommon.api.HS2Client.<init>(HS2Client.java:139)
at com.cloudera.hive.hive.api.ExtendedHS2Client.<init>(ExtendedHS2Client.java:474)
at com.cloudera.hive.hive.api.ExtendedHS2Factory.createClient(ExtendedHS2Factory.java:39)
at com.cloudera.hive.hivecommon.core.HiveJDBCConnection.connect(HiveJDBCConnection.java:597)
at com.cloudera.hive.jdbc.common.BaseConnectionFactory.doConnect(BaseConnectionFactory.java:219)
at com.cloudera.hive.jdbc.common.AbstractDriver.connect(AbstractDriver.java:216)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)

 

 

Class.forName("com.cloudera.hive.jdbc4.HS1Driver");

String url = "jdbc:hive://master:10000;AuthMech=0";


// EXCEPTION ---->

[Simba][HiveJDBCDriver](500151) Error setting/closing session: Server version error.
at com.cloudera.hive.hive.api.HS1Client.openSession(HS1Client.java:1090)
at com.cloudera.hive.hive.api.HS1Client.<init>(HS1Client.java:166)
at com.cloudera.hive.hive.api.HiveServer1ClientFactory.createClient(HiveServer1ClientFactory.java:61)
at com.cloudera.hive.hivecommon.core.HiveJDBCConnection.connect(HiveJDBCConnection.java:597)
at com.cloudera.hive.jdbc.common.BaseConnectionFactory.doConnect(BaseConnectionFactory.java:219)
at com.cloudera.hive.jdbc.common.AbstractDriver.connect(AbstractDriver.java:216)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)

 

 

Port 10000 is open. I can connect to hive2 server using beeline with the following bash commands:

 

beeline

!connect jdbc:hive2://localhost:10000 cloudera cloudera org.apache.hive.jdbc.HiveDriver

I have no Kerberos or LDAP enabled. Which is the correct way to establish connection to Hive with jdbc?

 

Announcements