2015-04-29 160 views
0

我正在嘗試連接到遠程配置單元服務器。我有以下Maven java代碼:連接到遠程HIVE服務器

private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; 
public static void main(String[] args) throws SQLException { 

     try { 
      // Register driver and create driver instance 
      Class.forName(driverName); 
     } catch (ClassNotFoundException ex) { 
      Logger.getLogger(ForHive.class.getName()).log(Level.SEVERE, null, ex); 
     } 

    // get connection 
    System.out.println("before trying to connect"); 
    Connection con = DriverManager.getConnection("jdbc:hive://<hostip>:10000/", "hive", ""); 
    System.out.println("connected"); 

    // create statement 
    Statement stmt = con.createStatement(); 

    // execute statement 
    stmt.executeQuery("CREATE TABLE IF NOT EXISTS " 
    +" consultant (eid int, name String, " 
    +" salary String, destignation String)" 
    +" COMMENT ‘Employee details’" 
    +" ROW FORMAT DELIMITED" 
    +" FIELDS TERMINATED BY ‘\t’" 
    +" LINES TERMINATED BY ‘\n’" 
    +" STORED AS TEXTFILE;"); 

    System.out.println("Table employee created."); 
    con.close(); 

}

但是,當我執行它卡住,而試圖連接到服務器,要麼拋出也不例外。

+0

您確定服務器正在運行? –

+0

是的,它運行,我可以輕鬆地在本地工作,但無法遠程訪問它 –

+0

我不熟悉Maven,但這聽起來像它可能很容易成爲防火牆或其他網絡路由問題。 –

回答

0

嘗試使用org.apache.hive.jdbc.HiveDriver驅動程序。 連接字符串 jdbc:hive2://<host>:10000/

0

以下方法是您的問題的原因。

1.Hive JDBC Class路徑是「org.apache.hive.jdbc.HiveDriver」,而不是「org.apache.hadoop.hive.jdbc.HiveDriver」。

2.對於蜂巢服務器,

可以能夠使用如下。

Connection con = DriverManager.getConnection(「jdbc:hive://:10000/default」,「」,「」);

3.如果您已經使用hiveserver2,

你有下面的連接使用。

Connection con = DriverManager.getConnection(「jdbc:hive2://:10000/default」,「」,「」);

以上幾種方式肯定對您有所幫助