Exception in thread "main" java.sql.SQLException: Could not open client transport with JDBC Uri: jdbc:hive2://192.168.42.130:10000/hive_1: null
at org.apache.hive.jdbc.HiveConnection.(HiveConnection.java:209)
at org.apache.hive.jdbc.HiveDriver.connect(HiveDriver.java:107)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at hive.JDBC_Hive.main(JDBC_Hive.java:16)
Caused by: org.apache.thrift.transport.TTransportException
at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
at org.apache.thrift.transport.TSaslTransport.receiveSaslMessage(TSaslTransport.java:178)
at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:307)
at org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37)
at org.apache.hive.jdbc.HiveConnection.openTransport(HiveConnection.java:227)
at org.apache.hive.jdbc.HiveConnection.(HiveConnection.java:182)
... 4 more
以上是报错信息.
代码如下:
package hive;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class JDBC_Hive {
public static void main(String[] args) throws Throwable {
try {
Class.forName("org.apache.hive.jdbc.HiveDriver");
} catch (Exception e) {
e.printStackTrace();
}
String url = "jdbc:hive2://192.168.42.130:10000/hive_1";
Connection conn = DriverManager.getConnection(url,"root","root");
String sql = "select count(*) num from nnn";
PreparedStatement prepareStatement = conn.prepareStatement(sql);
long time = System.currentTimeMillis();
ResultSet rs = prepareStatement.executeQuery(sql);
while (rs.next()) {
int num = rs.getInt("num");
System.out.println(num);
}
long timeUsed = System.currentTimeMillis() - time;
System.out.println("time " + timeUsed + "mm");
rs.close();
prepareStatement.close();
conn.close();
}
}
hiveserve2开了,thrift开了,jdbc还是连接不上hive.众筹解决方案啊!