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.众筹解决方案啊!
Uri错了,或者密码什么的。。。仔细检查一下
你这个的问题是sql连接出问题了,你检查一下连接数据库的ip...等
Could not open client transport with JDBC Uri: jdbc:hive2://192.168.42.130:10000/hive_1: null 你这个连接不上,你用的什么数据库,话说连接数据库端口不是3306吗? 你把url 改成jdbc:hive2://192.168.42.130:3306/hive_1
[root@myMaster bin]# jps
3088 SecondaryNameNode
3666 RunJar
4082 Jps
3367 NodeManager
3896 ThriftServer
3242 ResourceManager
2796 NameNode
2894 DataNode
看不出哪错了……
要不用连接hive的方法试试?
顺便看看hive的bin包下有hiveserver2没?
看不出哪错了……上google看看有没有更好的解决方法