Hive2 & JDBC - Required field 'serverProtocolV

2019-07-19 00:57发布

I am trying to connect to hive using Driver org.apache.hive.jdbc.HiveDriver

 private static String driverName = "org.apache.hive.jdbc.HiveDriver";


  public void (String query)throws SQLException {
    try {
      Class.forName(driverName);
    } catch (ClassNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      System.exit(1);
    }
    Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "", "");
    Statement stmt = con.createStatement();
    String tableName = "testHiveTable";
    stmt.executeQuery("drop table " + tableName);
    ResultSet res = stmt.executeQuery("create table " + tableName + " as "+query);

Getting the following error

java.sql.SQLException: Could not establish connection to jdbc:hive2://localhost:10000/default: Required field 'serverProtocolVersion' is unset! Struct:TOpenSessionResp(status:TStatus(statusCode:SUCCESS_STATUS), serverProtocolVersion:null, sessionHandle:TSessionHandle(sessionId:THandleIdentifier(guid:4A D8 C1 6F 82 54 49 05 80 77 24 7D A2 3A 1D 9A, secret:21 9B BF EA 37 B6 49 60 BE 5F D2 13 98 E3 17 0B)), configuration:{})

1条回答
▲ chillily
2楼-- · 2019-07-19 01:00

I had the same issue. Setting username in method getConnection fixed my problem. Please see HiveServer2 documentation for more details.

查看更多
登录 后发表回答