0


13、java api访问hive操作示例

Apache Hive 系列文章

1、apache-hive-3.1.2简介及部署(三种部署方式-内嵌模式、本地模式和远程模式)及验证详解
2、hive相关概念详解–架构、读写文件机制、数据存储
3、hive的使用示例详解-建表、数据类型详解、内部外部表、分区表、分桶表
4、hive的使用示例详解-事务表、视图、物化视图、DDL(数据库、表以及分区)管理详细操作
5、hive的load、insert、事务表使用详解及示例
6、hive的select(GROUP BY、ORDER BY、CLUSTER BY、SORT BY、LIMIT、union、CTE)、join使用详解及示例
7、hive shell客户端与属性配置、内置运算符、函数(内置运算符与自定义UDF运算符)
8、hive的关系运算、逻辑预算、数学运算、数值运算、日期函数、条件函数和字符串函数的语法与使用示例详解
9、hive的explode、Lateral View侧视图、聚合函数、窗口函数、抽样函数使用详解
10、hive综合示例:数据多分隔符(正则RegexSerDe)、url解析、行列转换常用函数(case when、union、concat和explode)详细使用示例
11、hive综合应用示例:json解析、窗口函数应用(连续登录、级联累加、topN)、拉链表应用
12、Hive优化-文件存储格式和压缩格式优化与job执行优化(执行计划、MR属性、join、优化器、谓词下推和数据倾斜优化)详细介绍及示例
13、java api访问hive操作示例


文章目录


本文仅仅介绍通过java api访问hive的数据。
本文依赖hive环境可用,特别是HiveServer2。
本文比较简单,仅仅为示例。

一、pom.xml

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

二、java 类

importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.Statement;importorg.junit.After;importorg.junit.Before;importorg.junit.Test;importlombok.extern.slf4j.Slf4j;/**
 * JDBC 操作 Hive
 *
 */@Slf4jpublicclassApp{privatestaticString driverName ="org.apache.hive.jdbc.HiveDriver";privatestaticString url ="jdbc:hive2://server4:10000/default";// default 是默認數據庫名稱privatestaticString user ="alanchan";// hadoop中可以訪問hdfs的用戶privatestaticString password ="123456";// 該用戶的密碼privatestaticConnection conn =null;privatestaticStatement stmt =null;privatestaticResultSet rs =null;@Beforepublicvoidinit()throwsException{Class.forName(driverName);
        conn =DriverManager.getConnection(url, user, password);
        stmt = conn.createStatement();}// 创建数据库@TestpublicvoidcreateDatabase()throwsException{String sql ="create database test";
        log.info("sql:{}", sql);
        stmt.execute(sql);}// 查询所有数据库@TestpublicvoidshowDatabases()throwsException{String sql ="show databases";
        log.info("sql:{}", sql);
        rs = stmt.executeQuery(sql);while(rs.next()){System.out.println(rs.getString(1));}}// 创建表@TestpublicvoidcreateTable()throwsException{String sql ="create table test (id int ,name string) row format delimited fields terminated by  '\\t' ";
        log.info("sql:{}", sql);
        stmt.execute(sql);}// 查询所有表@TestpublicvoidshowTables()throwsException{String sql ="show tables";
        log.info("sql:{}", sql);
        rs = stmt.executeQuery(sql);while(rs.next()){System.out.println(rs.getString(1));}}// 查看表结构@TestpublicvoiddescTable()throwsException{String sql ="desc emp";
        log.info("sql:{}", sql);
        rs = stmt.executeQuery(sql);while(rs.next()){System.out.println(rs.getString(1)+"\t"+ rs.getString(2));}}// 加载数据@TestpublicvoidloadData()throwsException{String filePath ="/home/hadoop/data/emp.txt";String sql ="load data local inpath '"+ filePath +"' overwrite into table test";
        log.info("sql:{}", sql);
        stmt.execute(sql);}// 查询数据@TestpublicvoidselectData()throwsException{String sql ="select * from test";
        log.info("sql:{}", sql);
        rs = stmt.executeQuery(sql);while(rs.next()){System.out.println(rs.getInt("id")+"\t\t"+ rs.getString("name"));}}// 统计查询(会运行mapreduce作业)@TestpublicvoidcountData()throwsException{String sql ="select count(1) from test";
        log.info("sql:{}", sql);
        rs = stmt.executeQuery(sql);while(rs.next()){System.out.println(rs.getInt(1));}}// 删除数据库@TestpublicvoiddropDatabase()throwsException{String sql ="drop database if exists test";
        log.info("sql:{}", sql);
        stmt.execute(sql);}// 删除数据库表@TestpublicvoiddeopTable()throwsException{String sql ="drop table if exists test";
        log.info("sql:{}", sql);
        stmt.execute(sql);}// 释放资源@Afterpublicvoiddestory()throwsException{if(rs !=null){
            rs.close();}if(stmt !=null){
            stmt.close();}if(conn !=null){
            conn.close();}}}
标签: hive java hadoop

本文转载自: https://blog.csdn.net/chenwewi520feng/article/details/131111073
版权归原作者 一瓢一瓢的饮 alanchan 所有, 如有侵权,请联系我们删除。

“13、java api访问hive操作示例”的评论:

还没有评论