Hortonworks hiveserver2 jdbc错误

时间:2014-05-08 16:42:02

标签: hadoop jdbc hive hortonworks-data-platform

我安装了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");

程序版本:

  • Hadoop - 2.2.0
  • Hive - 0.12.0

这种情况有解决方案吗?

1 个答案:

答案 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", "");