2015-04-29 163 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”,“”,“”);

以上几种方式肯定对您有所帮助