千家信息网

JDBC连接HIVE

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,hive是大数据技术簇中进行数据仓库应用的基础组件,是其它类似数据仓库应用的对比基准。基础的数据操作我们可以通过脚本方式以hive-client进行处理。若需要开发应用程序,则需要使用hive的jdb
千家信息网最后更新 2024年11月26日JDBC连接HIVE

hive是大数据技术簇中进行数据仓库应用的基础组件,是其它类似数据仓库应用的对比基准。基础的数据操作我们可以通过脚本方式以hive-client进行处理。若需要开发应用程序,则需要使用hive的jdbc驱动进行连接.

代码连接hive需要先启动hive的metastore和hiveserver2

hive --service metastore &hive --service hiveserver2 &

其中hive-site.xml的配置为:

javax.jdo.option.ConnectionURLjdbc:mysql://192.168.174.131:3306/hive?createDatabaseIfNotExist=trueJDBC connect string for a JDBC metastorejavax.jdo.option.ConnectionDriverNamecom.mysql.jdbc.DriverDriver class name for a JDBC metastorejavax.jdo.option.ConnectionUserNamerootusername to use against metastore databasejavax.jdo.option.ConnectionPassword123456password to use against metastore database  hive.metastore.uris  thrift://192.168.174.131:9083  hive.support.sql11.reserved.keywordsfalse


代码要想连接hive需要添加两个依赖:

    org.apache.hive   hive-jdbc       1.2.1   org.apache.hadoop   hadoop-common   2.6.4

代码演示:

package com.fwmagic.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import com.mysql.jdbc.Statement;public class JdbcHive {   private static Connection conn;   private static Statement st;      public static void main(String[] args) throws Exception {      Connection connection = getConnection();      System.out.println("connection:"+connection);      String sql = "show tables";      PreparedStatement prepareStatement = connection.prepareStatement(sql);      ResultSet rs = prepareStatement.executeQuery();      while(rs.next()){         String db = rs.getString(1);         System.out.println(db);      }   }   /* 获取数据库连接的函数 */   private static Connection getConnection() {      Connection con = null; // 创建用于连接数据库的Connection对象      try {         Class.forName("org.apache.hive.jdbc.HiveDriver");// 加载hive2数据驱动         con = DriverManager.getConnection(               "jdbc:hive2://192.168.174.131:10000/default", "root", null);// 创建数据连接      } catch (Exception e) {         System.out.println("hive数据库连接失败" + e.getMessage());      }      return con; // 返回所建立的数据库连接   }}





0