Built with Tutify.io

    AIStudyLabs

    Connect to Hive Using JDBC Connection

    Connect to Hive Using JDBC Connection

    Hive provides a JDBC connection URL string jdbc:hive2://ip-address:port to connect to Hive warehouse from remote applications running with Java, Scala, Python, Spark and many more.

    In this article, I will explain how to connect to Hive from Java and Scala using JDBC connection URL string and maven dependency hive-jdbc

    <a name="h-hive-jdbc-connection-url"></a>

    Hive JDBC Connection URL

    Similar to other databases Hive also supports JDBC connection URL string jdbc:hive2://ip-address:port to connect to Hive from applications running remotely.

    
    jdbc:hive2://192.168.1.148:10000/default
    

    If you are using an older version of Hive your connection string should be jdbc:hive://

    
    jdbc:hive://
    

    <a name="h-hive-jdbc-maven-dependency"></a>

    Hive JDBC Maven Dependency

    In order to connect to Hive from Java & Scala program and run HiveQL you need to have <a href="https://mvnrepository.com/artifact/org.apache.hive/hive-jdbc">hive-jdbc</a> library as a dependency for maven or Gradel. For Maven, use the below artifact on your pom.xml.

    
    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-jdbc</artifactId>
        <version>3.1.2</version>
    </dependency>
    

    Use the artifact version according to Hive version you are using.

    Use new driver class org.apache.hive.jdbc.HiveDriver, which works with HiveServer2.

    Note: If you are using an older version of Hive, you should use the driver org.apache.hadoop.hive.jdbc.HiveDriver and your connection string should be jdbc:hive://

    <a name="h-start-hiveserver2"></a>

    Start HiveServer2

    To connect from Java, Scala, Python, or from any programming language remotely, you need to Start HiveServer2 service from $HIVE_HOME/bin directory.

    
    prabha@namenode:~/hive/bin$ ./hiveserver2
    2020-10-03 23:17:08: Starting HiveServer2
    

    <a name="h-accessing-hive-from-java"></a>

    Accessing Hive from Java

    Below is a complete example of accessing Hive from Java using JDBC URL string and JDBC drive.

    This example connects to default database comes with Hive and shows the databases in the Hive.

    
    package com.aistudylabs.hive;
    
    import java.sql.Connection;
    import java.sql.Statement;
    import java.sql.DriverManager;
    
    public class HiveJDBCConnect {
    	public static void main(String[] args) {
    		Connection con = null;
    		try {
    			String conStr = "jdbc:hive2://192.168.1.148:10000/default";
    			Class.forName("org.apache.hive.jdbc.HiveDriver");
    			con = DriverManager.getConnection(conStr, "", "");
    			Statement stmt = con.createStatement();
    			stmt.executeQuery("show databases");
    			System.out.println("show database successfully.");
    		} catch (Exception ex) {
    			ex.printStackTrace();
    		} finally {
    			try {
    				if (con != null)
    					con.close();
    			} catch (Exception ex) {
    			}
    		}
    	}
    }
    

    In high level above example does the following.

    <a name="h-accessing-hive-from-scala"></a>

    Accessing Hive from Scala

    Below is a complete example accessing Hive from Scala using JDBC URL string and driver.

    
    package com.aistudylabs.hive;
    
    import java.sql.Connection;
    import java.sql.Statement;
    import java.sql.DriverManager;
    
    object HiveJDBCConnect extends App{
    	var con = null;
    	try {
    		val conStr = "jdbc:hive2://192.168.1.148:10000/default";
    		Class.forName("org.apache.hive.jdbc.HiveDriver");
    		con = DriverManager.getConnection(conStr, "", "");
    		val stmt = con.createStatement();
    		stmt.executeQuery("Show databases");
    		System.out.println("show database successfully");
    	} catch (Exception ex) {
    		ex.printStackTrace();
    	} finally {
    		try {
    			if (con != null)
    				con.close();
    		} catch (Exception ex) {
    		}
    	}
    }
    

    <a name="h-conclusion"></a>

    Conclusion

    Here you have learned by starting HiveServer2 you can connect to Hive from remove services using JDBC connection URL string and learned how to connect to Hive from Java and Scala languages.

    Happy Learning !!

    <a name="h-related-articles"></a>

    Related Articles