通过JDBC访问hive集群
来源:互联网 发布:淘宝沙发推荐 编辑:程序博客网 时间:2024/05/19 06:35
hive是大数据结构化的查询工具,之前一直使用cli客户端连接hive集群进行SQL存储过程代码的测试。总体上来看,其实Java通过JDBC访问hive跟使用JDBC访问MySQL和Oracle的代码结构基本雷同。区别在于通过JDBC访问hive访问时,查询性能比较慢,千万级别的表测试查询速度,随机查询10条数据,需要10秒,第一次加载需要30秒以上,如果是条件查询则超过5分钟,复杂查询会有查询超时报错。JDBC方式适合数量在十万以下的表查询,而且不适合复杂的条件查询、关联查询。JDK版本:1.8hive版本:0.13hadoop版本:2.52集群元数据库MySQL库的版本貌似是5.1,这个其实不影响。以下为示例代码:
package com.java.linkhive;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import org.apache.hadoop.conf.Configuration;public class hiveTestCase { public static void main(String[] args) throws Exception { Class.forName("org.apache.hive.jdbc.HiveDriver"); //hive是不支持insert into...values(....)这种操作的 String querySQLTest = "select order_no from order_bill limit 10"; //建立连接对象 Connection con = DriverManager.getConnection("jdbc:hive2://192.XXX.XXX.XXX:10000/DB_AA", "ETL_AA", "ETLABC"); Statement stmt = con.createStatement(); stmt.executeQuery(querySQLTest); // 执行查询语句 ResultSet res = stmt.executeQuery(querySQLTest); //输出查询结果 int i=1; while (res.next()) { System.out.println(res.getString(1)); } }}
以下为输出结果(log4j是java的一个标准日志输出包):
其实代码上并没有什么难度,主要问题出在jar加载上,由于jar包的缺失导致了代码无法执行,下面是经过N次尝试后,得出的编写Java通过JDBC方式连接hive集群时所需要的Jar包:
0 0
- 通过JDBC访问hive集群
- jdbc通过hive server2访问hive
- 如何使用Java程序通过JDBC访问HDInsight Hive Server
- Hive通过JDBC方式访问时碰到的问题汇总
- 在spark集群中通过hive访问mysql数据库
- 通过JDBC连接hive
- 使用JDBC访问Hive
- eclipse通过jdbc连接hive
- Java通过JDBC连接Hive
- 通过JDBC来连接Hive
- 通过JDBC连接Hive Server2
- Java通过JDBC操作Hive
- java 通过JDBC连接hive
- 通过JDBC访问数据库
- 通过 JDBC 访问数据库
- 通过JDBC访问数据库
- 通过JDBC访问数据库
- 通过JDBC访问ThriftServer
- 利用WeX5平台实现单图片上传功能
- xml 序列化操作
- 算法题:水杯倒水的问题
- msql表里的数据的简单复制并且修改
- 软件2班36人[扑林作]
- 通过JDBC访问hive集群
- 计算器之如何从字符串表达式中有效提取数字
- 值类型与引用类型(上)
- 值类型与引用类型(中)
- Unity发布IOS平台之创建真机调试证书以及发布IPA
- 值类型与引用类型(下)
- 创建自定义数据源
- Left/right join 和inner join 区别
- oralce索引组织表与聚簇表的区别