2015-04-29 1 views
0

Je tente de me connecter à un serveur de ruche distant. J'ai le code java maven suivant:Connexion au serveur HIVE distant

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(); 

}

Mais quand je l'exécute est bloqué en essayant de se connecter au serveur et lance pas exception non plus.

+0

Et vous êtes sûr que le serveur fonctionne? –

+0

oui il est en cours d'exécution, je peux facilement y travailler localement, mais je ne peux pas y accéder à distance –

+0

Je ne connais pas Maven, mais cela peut facilement être un pare-feu ou un autre problème de routage réseau. –

Répondre

0

Essayez d'utiliser le pilote org.apache.hive.jdbc.HiveDriver. Chaîne de connexion jdbc:hive2://<host>:10000/

0

Les causes suivantes sont la cause de votre problème.

1.Le chemin de la classe JDBC est "org.apache.hive.jdbc.HiveDriver" et non "org.apache.hadoop.hive.jdbc.HiveDriver".

2.Pour serveur ruche,

Vous pouvez en mesure d'utiliser comme ci-dessous.

Connexion con = DriverManager.getConnection ("jdbc: hive: //: 10000/default", "", "");

3. Si vous avez l'aide hiveserver2,

vous avez l'utilisation ci-dessous connexion.

Connexion con = DriverManager.getConnection ("jdbc: hive2: //: 10000/default", "", "");

Les moyens ci-dessus sont sûrement utiles pour vous