hive是大数据技术簇中进行数据仓库应用的基础组件,是其它类似数据仓库应用的对比基准。基础的数据操作我们可以通过脚本方式以hive-client进行处理。若需要开发应用程序,则需要使用hive的jdbc驱动进行连接.
成都创新互联是专业的毕节网站建设公司,毕节接单;提供网站设计制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行毕节网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
代码连接hive需要先启动hive的metastore和hiveserver2
hive --service metastore & hive --service hiveserver2 &
其中hive-site.xml的配置为:
javax.jdo.option.ConnectionURL jdbc:MySQL://192.168.174.131:3306/hive?createDatabaseIfNotExist=true JDBC connect string for a JDBC metastore javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver Driver class name for a JDBC metastore javax.jdo.option.ConnectionUserName root username to use against metastore database javax.jdo.option.ConnectionPassword 123456 password to use against metastore database hive.metastore.uris thrift://192.168.174.131:9083 hive.support.sql11.reserved.keywords false
代码要想连接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; // 返回所建立的数据库连接 } }