我安装了hortonworks,我尝试通过jdbc访问hiveserver2。但是我收到了错误
错误:不支持的hive2协议
代码:
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.exit(1);
System.out.println("error");
}
java.sql.Connection con = DriverManager.getConnection("jdbc:hive2://192.168.0.96:10000/db","id","pwd");
程序版本:
这种情况有解决方案吗?
答案 0 :(得分:0)
正如@climbage所提到的,客户端代码和配置单元服务器使用的协议版本不匹配。
以下是拒绝请求的特定配置单元源代码(在Hive Connection source code
中)private void openSession(Map sessVars)抛出SQLException { TOpenSessionReq openReq = new TOpenSessionReq();
..
try {
TOpenSessionResp openResp = client.OpenSession(openReq);
// validate connection
Utils.verifySuccess(openResp.getStatus());
if (!supportedProtocols.contains(openResp.getServerProtocolVersion())) {
throw new TException("Unsupported Hive2 protocol");
}
我的建议:查看部署在服务器上的特定版本的hive的core-hive模块中的src / test代码。他们将进行jdbc测试,您可以“提升”到客户端代码中。
另外,您是否只是尝试过蜂巢而不是hive2?
Connection con = DriverManager.getConnection("jdbc:hive://192.168.56.101:10000/default", "root", "");