Created on 10-03-2016 01:50 AM - edited 09-16-2022 03:42 AM
Hi,
I am getting the following error while connecting to Hive using Jdbc with org.apache.hadoop.hive.jdbc.HiveDriver.
Help Me to solve this.
Exception in thread "main" java.sql.SQLException: org.apache.thrift.transport.TTransportException
at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:191)
at org.apache.hadoop.hive.jdbc.HiveStatement.execute(HiveStatement.java:127)
at org.apache.hadoop.hive.jdbc.HiveConnection.configureConnection(HiveConnection.java:126)
at org.apache.hadoop.hive.jdbc.HiveConnection.<init>(HiveConnection.java:121)
at org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:104)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.cloudera.hive.HiveConnectDB.main(HiveConnectDB.java:18)
Created 10-05-2016 05:37 AM
Hi,
Maybe you could share the java source code doing the connection ?
Here is a really small working sample :
public class ManageHive {
   private static String driverName = "org.apache.hive.jdbc.HiveDriver";
   private static Logger logger = Logger.getLogger(ManageHive.class);
 
   public static Connection getConnection(LoadProperties prop, String user) throws ClassNotFoundException, SQLException {
 
      String hiveJdbc = prop.getPropertyByName("hive_jdbc");
 
      try {
         Class.forName(driverName);
      } catch (ClassNotFoundException e) {
         e.printStackTrace();
         throw e;
      }
      Connection conn2 = DriverManager.getConnection(hiveJdbc+"/extraction", user, "");
      return conn2;
   }
 
   public static void execSql(LoadProperties prop, String user, String sql) throws SQLException, ClassNotFoundException {
 
      Connection maConn = getConnection(prop,user);
      Statement stmt = maConn.createStatement();
 
      int result = stmt.executeUpdate(sql);
      if ( result == Statement.EXECUTE_FAILED ) {
         throw new SQLException("Erreur d'execution.");
      }
   }
}
Created 10-05-2016 05:37 AM
Hi,
Maybe you could share the java source code doing the connection ?
Here is a really small working sample :
public class ManageHive {
   private static String driverName = "org.apache.hive.jdbc.HiveDriver";
   private static Logger logger = Logger.getLogger(ManageHive.class);
 
   public static Connection getConnection(LoadProperties prop, String user) throws ClassNotFoundException, SQLException {
 
      String hiveJdbc = prop.getPropertyByName("hive_jdbc");
 
      try {
         Class.forName(driverName);
      } catch (ClassNotFoundException e) {
         e.printStackTrace();
         throw e;
      }
      Connection conn2 = DriverManager.getConnection(hiveJdbc+"/extraction", user, "");
      return conn2;
   }
 
   public static void execSql(LoadProperties prop, String user, String sql) throws SQLException, ClassNotFoundException {
 
      Connection maConn = getConnection(prop,user);
      Statement stmt = maConn.createStatement();
 
      int result = stmt.executeUpdate(sql);
      if ( result == Statement.EXECUTE_FAILED ) {
         throw new SQLException("Erreur d'execution.");
      }
   }
}
Created on 10-05-2016 05:46 AM - edited 10-05-2016 05:52 AM
Hi Thanks for the Reply,I solved the issue.I have used following driver
public static String driverName = "com.cloudera.hive.jdbc41.HS1Driver";and added other required jars too.