【发布时间】:2014-12-11 07:00:39
【问题描述】:
我是蜂巢新手。我正在尝试这段代码enter link description here
这是我的代码
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;
public class HiveJdbcClient {
private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver";
public static void main(String[] args) throws SQLException {
try {
Class.forName(driverName);
System.out.println("Drive loaded...");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.exit(1);
}
System.out.println("Before Connecting to hive...");
try {
Connection con = DriverManager.getConnection("jdbc:hive://servername:10001/test","hive","hive");
System.out.println("Connected to hive..");
Statement stmt = con.createStatement();
String tableName = "testHiveDriverTable";
ResultSet res = stmt.executeQuery("create table " + tableName + " (key int, value string)");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
System.exit(1);
}
}
}
当我运行程序时,它只执行驱动程序加载步骤,但是当 DriverManager.getConnection() 执行时,它会永远运行。所以它不会给出任何异常或错误。所以请帮我解决这个问题。
【问题讨论】:
-
可能阻塞,等待连接 - 尝试调试
-
在调试模式下它也永远运行
-
是的,但它在哪里阻塞?
-
阻塞意味着它没有获得连接。但是 Hive 服务器正在运行。
-
所以将您的问题编辑为 - 为什么我无法连接到我的配置单元数据库?或者更确切地说,寻找答案。也许是防火墙(客户端或主机),也许是 hive db 设置?
标签: java hadoop jdbc hive hadoop2