簡體   English   中英

JDBC與配置單元的連接因無效操作isValid()而失敗

[英]JDBC to hive connection fails on invalid operation isValid()

我已經按照文檔嘗試建立與蜂巢的jdbc連接。 但是日食顯示此錯誤。 似乎沒有弄清楚它的確切含義,並且使用適當的密碼和用戶名進行的連接在beeline中有效,因此它不是身份驗證的問題。

> 15/11/27 13:15:41 INFO jdbc.Utils: Supplied authorities: localhost:10000
> 15/11/27 13:15:41 INFO jdbc.Utils: Resolved authority: localhost:10000
> 15/11/27 13:15:41 INFO jdbc.HiveConnection: Will try to open client transport with JDBC Uri: jdbc:hive2://localhost:10000/default
> Exception in thread "main" java.sql.SQLException: Method not supported
    at org.apache.hive.jdbc.HiveConnection.isValid(HiveConnection.java:1026)
    at HiveJDBC.main(HiveJDBC.java:21)

這是代碼:

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;

public class HiveJDBC {
  private static String driverName = "org.apache.hive.jdbc.HiveDriver";

  public static void main(String[] args) 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", "hive", "PASSWORD");
    if(con.isValid(0)){
        System.out.println("success");
    }else{
        System.out.println("fail");
    }

    Statement stmt = con.createStatement();
    String tableName = "tabledriver";
    //stmt.executeQuery("create database " + tableName);

  }
}

您打給

if(con.isValid(0)){

合法的 -而不是由蜂巢JDBC驅動程序實現的

請參閱Hive來源

@Override
public boolean isValid(int timeout) throws SQLException {
  // TODO Auto-generated method stub
  throw new SQLException("Method not supported");
}

用簡單的if(con != null)替換支票,就可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM