13、java api访问hive操作示例

这篇具有很好参考价值的文章主要介绍了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。
本文比较简单,仅仅为示例。文章来源地址https://www.toymoban.com/news/detail-588522.html

一、pom.xml

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

二、java 类

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import lombok.extern.slf4j.Slf4j;

/**
 * JDBC 操作 Hive
 *
 */
@Slf4j
public class App {

	private static String driverName = "org.apache.hive.jdbc.HiveDriver";
	private static String url = "jdbc:hive2://server4:10000/default";// default 是默認數據庫名稱
	private static String user = "alanchan";// hadoop中可以訪問hdfs的用戶
	private static String password = "123456";// 該用戶的密碼

	private static Connection conn = null;
	private static Statement stmt = null;
	private static ResultSet rs = null;

	@Before
	public void init() throws Exception {
		Class.forName(driverName);
		conn = DriverManager.getConnection(url, user, password);
		stmt = conn.createStatement();
	}

	// 创建数据库
	@Test
	public void createDatabase() throws Exception {
		String sql = "create database test";
		log.info("sql:{}", sql);
		stmt.execute(sql);
	}

	// 查询所有数据库
	@Test
	public void showDatabases() throws Exception {
		String sql = "show databases";
		log.info("sql:{}", sql);
		rs = stmt.executeQuery(sql);
		while (rs.next()) {
			System.out.println(rs.getString(1));
		}
	}

	// 创建表
	@Test
	public void createTable() throws Exception {
		String sql = "create table test (id int ,name string) row format delimited fields terminated by  '\\t' ";
		log.info("sql:{}", sql);
		stmt.execute(sql);
	}

	// 查询所有表
	@Test
	public void showTables() throws Exception {
		String sql = "show tables";
		log.info("sql:{}", sql);
		rs = stmt.executeQuery(sql);
		while (rs.next()) {
			System.out.println(rs.getString(1));
		}
	}

	// 查看表结构
	@Test
	public void descTable() throws Exception {
		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));
		}
	}

	// 加载数据
	@Test
	public void loadData() throws Exception {
		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);
	}

	// 查询数据
	@Test
	public void selectData() throws Exception {
		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作业)
	@Test
	public void countData() throws Exception {
		String sql = "select count(1) from test";
		log.info("sql:{}", sql);
		rs = stmt.executeQuery(sql);
		while (rs.next()) {
			System.out.println(rs.getInt(1));
		}
	}

	// 删除数据库
	@Test
	public void dropDatabase() throws Exception {
		String sql = "drop database if exists test";
		log.info("sql:{}", sql);
		stmt.execute(sql);
	}

	// 删除数据库表
	@Test
	public void deopTable() throws Exception {
		String sql = "drop table if exists test";
		log.info("sql:{}", sql);
		stmt.execute(sql);
	}

	// 释放资源
	@After
	public void destory() throws Exception {
		if (rs != null) {
			rs.close();
		}
		if (stmt != null) {
			stmt.close();
		}
		if (conn != null) {
			conn.close();
		}
	}

}

到了这里,关于13、java api访问hive操作示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop——HDFS的Java API操作(文件上传、下载、删除等)

    1、创建Maven项目 2、修改pom.xml文件 3、添加四个配置文件 为避免运行的一些错误,我们将Hadoop的四个重要配置文件添加到resources中 4、创建测试文件JavaAPI 5、初始化 因为对文件的操作我们都需要获取hdfs对象和关闭对象,所以为避免重复编写,将两个操作对立成单独方法,分别

    2024年02月06日
    浏览(49)
  • Hadoop系统应用之HDFS相关操作 - - Java-API对HDFS的操作(IDEA版)

    通过Java API来操作HDFS文件系统HDFS,相关的操作有:文件上传、文件下载、新建文件夹、查看文件、删除文件。 1.Linux下安装好hadoop,这里使用hadoop2.7.3 2.window解压hadoop2.7.3的包 2.Windows下安装好jdk1.8  3.Windows下安装好IDEA,这里使用IDEA2022 4.Windows下安装好maven,这里使用Maven3.6.3

    2024年02月05日
    浏览(41)
  • 4、hive的使用示例详解-事务表、视图、物化视图、DDL(数据库、表以及分区)管理详细操作

    1、apache-hive-3.1.2简介及部署(三种部署方式-内嵌模式、本地模式和远程模式)及验证详解 2、hive相关概念详解–架构、读写文件机制、数据存储 3、hive的使用示例详解-建表、数据类型详解、内部外部表、分区表、分桶表 4、hive的使用示例详解-事务表、视图、物化视图、DDL

    2024年02月09日
    浏览(42)
  • 【hadoop】使用Java API 上传下载数据

    使用工具类简化后的代码: 使用工具类简化后的代码:

    2024年02月16日
    浏览(29)
  • 【flink番外篇】9、Flink Table API 支持的操作示例(14)- 时态表的join(java版本)

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月02日
    浏览(42)
  • [AIGC ~大数据] 深入理解Hadoop、HDFS、Hive和Spark:Java大师的大数据研究之旅

    作为一位Java大师,我始终追求着技术的边界,最近我将目光聚焦在大数据领域。在这个充满机遇和挑战的领域中,我深入研究了Hadoop、HDFS、Hive和Spark等关键技术。本篇博客将从\\\"是什么\\\"、\\\"为什么\\\"和\\\"怎么办\\\"三个角度,系统地介绍这些技术。 Hadoop Hadoop是一个开源的分布式计算

    2024年02月03日
    浏览(31)
  • 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例

    一、Flink 专栏 Flink 专栏系统介绍某一知识点,并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分,比如术语、架构、编程模型、编程指南、基本的datastream api用法、四大基石等内容。 3、

    2024年02月04日
    浏览(31)
  • Java操作k8s api示例:使用kubeconfig文件认证;获取所有pod;获取pod内应用容器的启动日志

    公司准备将应用容器化部署,先使用了华为云的 Kubernetes 服务,后面又使用阿里云的 Kubernetes 服务。并短期一个月内无法判断走哪个云商。而作为一个在公司内部用于应用发布,部署的应用。在对接完华为云的 Kubernetes 服务 Api 后。再对接阿里云发现阿里云并没用像华为云一

    2023年04月09日
    浏览(44)
  • hive库操作示例

    1、常规表 创建数据库 使用数据库 创建表 插入数据 插入报错 [42000][10797] COMPILE FAILED: Semantic error: [Error 10797] Only allow to single insert into Hyperbase/ES/Transaction Orc 单行插入同样报错,下述分区表、分桶表均存在相同报错; 正确插入示例 查询数据 更新数据 删除数据 更新删除报错

    2024年02月11日
    浏览(21)
  • 4、Elasticsearch7.6.1 Java api操作ES(CRUD、两种分页方式、高亮显示)和Elasticsearch SQL详细示例

    1、介绍lucene的功能以及建立索引、搜索单词、搜索词语和搜索句子四个示例实现 2、Elasticsearch7.6.1基本介绍、2种部署方式及验证、head插件安装、分词器安装及验证 3、Elasticsearch7.6.1信息搜索示例(索引操作、数据操作-添加、删除、导入等、数据搜索及分页) 4、Elasticsearch7

    2024年02月16日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包