Java通过JDBC操作Hive

Java 使用JDBC连接 Hive(HiveClient On JDBC) 使用JDBC方式连接Hive 。 阅读详情

使用JDBC连接Hive之前必须先启动HiveServer2

HiveServer2是服务器接口,能使客户端执行Hive查询的服务。 是HiveServer1的改进版,支持多客户端并发和身份认证。旨在为开放API客户端(如JDBC和ODBC)提供更好的支持。

1.添加jar

<dependency>
	<groupId>org.apache.hive</groupId>
	<artifactId>hive-jdbc</artifactId>
	<version>1.1.0</version>
		<exclusions>
		<exclusion>
			<groupId>org.eclipse.jetty.aggregate</groupId>
			<artifactId>jetty-all</artifactId>
		</exclusion>
		<exclusion>
			<groupId>org.apache.hive</groupId>
				<artifactId>hive-shims</artifactId>
			</exclusion>
		</exclusions>
</dependency>

2.连接驱动

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class HiveJDBCUtils {
	
	private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    private static String url = "jdbc:hive2://ip:10000/default";//端口默认10000
    private static String user = "name";
    private static String password = "password";

    private static Connection conn = null;
    private static Statement stmt = null;
    
    // 加载驱动、创建连接
    public Statement Connection() throws Exception {
        Class.forName(driverName);
        conn = DriverManager.getConnection(url,user,password);
        stmt = conn.createStatement();
        return stmt;
    }
}

3. demo代码

public class HiveJDBC {

    private static Connection conn = null;
    private static Statement stmt = null;
    private static ResultSet rs = null;
    
    public static void main(String[] args) throws Exception {
    	HiveJDBCUtils h = new HiveJDBCUtils();
    	stmt = h.Connection();
    	loadData();
    	destory();
	}

    // 创建数据库
    public static void createDatabase() throws Exception {
        String sql = "create database databaseName";
        System.out.println("Running: " + sql);
        stmt.execute(sql);
    }
 
    // 查询所有数据库
    public static void showDatabases() throws Exception {
        String sql = "show databases";
        System.out.println("Running: " + sql);
        rs = stmt.executeQuery(sql);
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
    }

    // 创建表(分割符为“,”)
    public static void createTable() throws Exception {
         String sql="create table tableName(name string,sex string) row format delimited fields terminated by ','";
        System.out.println("Running: " + sql);
        stmt.execute(sql);
    }

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

    // 查看表结构
    public static void descTable() throws Exception {
        String sql = "desc formatted tableName";
        System.out.println("Running: " + sql);
        rs = stmt.executeQuery(sql);
        while (rs.next()) {
            System.out.println(rs.getString(1) + "\t" + rs.getString(2));
        }
    }

    // 加载数据(请确保文件权限)
    public static void loadData() throws Exception {
    	String filePath = "file路径";
        String sql = "load data inpath '" + filePath + "' into table tableName";
        System.out.println("Running: " + sql);
        stmt.execute(sql);
    	}  	
    }
    
    // 查询数据
    public static void selectData(String str) throws Exception {
    	String sql = "select * from tableName";
        System.out.println("Running: " + sql);
        rs = stmt.executeQuery(sql);
        while (rs.next()) {
			System.out.println(rs.getString(1));
        }
    }
   
    // 删除数据库
    public static void dropDatabase() throws Exception {
        String sql = "drop database if exists tableName";
        System.out.println("Running: " + sql);
        stmt.execute(sql);
    }

    // 删除数据库表
    public static void deopTable() throws Exception {
        String sql = "drop table if exists tableName";
        System.out.println("Running: " + sql);
        stmt.execute(sql);
    }

    // 释放资源
    public static void destory() throws Exception {
        if ( rs != null) {
            rs.close();
        }
        if (stmt != null) {
            stmt.close();
        }
        if (conn != null) {
            conn.close();
        }
    }
}
Java知识体系!Hive-JDBC操作 <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/metastore?characterEncoding=UTF-8&createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option... 阅读详情

相关推荐

【vLLM-性能洞察】基于Ascend Profiler的端到端推理瓶颈定位与优化实践

本文详细介绍了如何利用Ascend Profiler对vLLM-Ascend大模型推理服务进行端到端的性能瓶颈定位与优化。通过实战案例,阐述了从数据采集、可视化分析到诊断低效算子、内存管理、计算通信重叠及框架调度等常见瓶颈的全过程,为基于昇腾NPU的AI推理性能调优提供了系统性的方法论和实用工具指南。

cc789的博客 522

Hive:用Java代码通过JDBC连接Hiveserver

原文地址:http://blog.youkuaiyun.com/wypblog/article/details/17390333 我们可以通过CLI、Client、Web UI等Hive提供的用户接口来和Hive通信,但这三种方式最常用的是CLI;Client 是Hive的客户端,用户连接至 Hive Server。在启动 Client 模式的时候,需要指出Hive Server所在节点,并且在

╱/.进oоΟ的专栏 1万+

全志DRM框架下LVDS双屏异显配置实战

本文详细介绍了在全志DRM框架下配置LVDS双屏异显的实战经验。涵盖硬件连接、内核配置、设备树修改、背光控制及U-Boot适配等关键步骤,重点解析屏参转换技巧与双屏route配置,帮助开发者解决工业控制台等多屏应用中的显示适配问题,提升开发效率。

rnn9storyteller的博客 814

JDBC连接hive的配置说明

hive先验hive简介thrift协议hive本地运行JDBC访问 hive简介 https://developer.aliyun.com/article/100911 1 特点: 一次写入,多次读出; 处理海量数据; hdfs存储,mr处理; 对实时性要求低; … 2 基本组成 用户接口:包括 CLI、JDBC/ODBC、WebGUI。 元数据存储:通常是存储在关系数据库如 mysql , derby中。 解释器、编译器、优化器、执行器。 3 各组件的基本功能 用户接口主要由三个:CLI、JDB

m0_47605847的博客 6385

ICCV 2025 | 哈工大、清华等提出首个双曲学习框架:HLFormer,革新局部相关视频检索

离原点越远,代表的语义越具体(部分)。现有方法大多在传统的欧几里得空间中对视频和文本进行建模,但这往往会导致对视频内在层次结构的错误表示,从而影响检索的准确性。通过UMAP对学习到的帧嵌入进行可视化(如下图),可以观察到,来自同一时刻的视频帧在嵌入空间中聚集在一起,清晰地展示了模型对时序关系的捕捉能力。下图的双曲空间可视化进一步证实了模型的层次建模能力:离原点越近的点,代表的语义层级越高、粒度越粗糙,反之亦然。:既然文本查询描述的是视频的一部分,那么在几何表示上,文本的嵌入向量应该从属于视频的嵌入向量。

我爱计算机视觉 1082

STM32 ADC精准采集12V电池电压:从分压电路到软件校准全解析

本文详细解析了STM32 ADC精准采集12V电池电压的全过程,涵盖分压电路设计、电阻选型、ADC配置优化及软件校准方法。针对电池电压监测中的噪声、温漂等挑战,提供了硬件滤波与软件过采样等实战技巧,确保测量精度达到1%以内,满足嵌入式设备对电源管理的严苛要求。

tech5的博客 1014

HIVE JDBC方法连接

输入 hiveserver2 打开hive server2 在之前的学习和实践Hive中,使用的都是CLI或者hive –e的方式,该方式仅允许使用HiveQL执行查询、更新等操作,并且该方式比较笨拙单一。幸好Hive提供了轻客户端的实现,通过HiveServer或者HiveServer2,客户端可以在不启动CLI的情况下对Hive中的数据进行操作,两者都允许远程客户端使用多种编程语言如Ja...

养猪少年日记的博客 2万+

在天问block环境下LU-ASR01与51单片机的基础运用

正确步骤将模块和电脑连接后,仍然显示未连接(如4.1中图片中的编译下载后面显示未连接),可以尝试关闭软件后尝试,如果仍然不行换一条type-c线再试;以上方式都不行,可能要怀疑ASR01硬件损坏,跟商家联系!!!

BUG7073的博客 1万+

java通过jdbc连接hive

版本说明 hadoop 3.2.2 hive 版本 3.1.2 安装好hive 之后,hive默认的用户名和密码都是空的,所以需要我们设置用户名和密码。 参考网上的,按照自定义的方式设置hive 的用户名和密码。 1.首先要打一个jar 包,我这里已经打好了,需要可以去下载。 2.也可以自己通过代码编译自行打包; package com.quant.flowcalculation.flinkapi.etl.hive; import java.sql.Connection; import java.sql.

启迪思维,精进技术 3212

YOLO26-seg分割优化:卷积魔改 | 动态蛇形卷积(Dynamic Snake Convolution),实现暴力涨点 | ICCV2023

​​​​​​摘要:本研究对Ultralytics YOLO26进行了全面分析,重点阐述了其关键架构改进及其在实时边缘目标检测中的性能基准测试。YOLO26于2025年9月发布,是YOLO系列最新、最先进的成员,专为在边缘及低功耗设备上实现高效、精确且易于部署的目标而构建。本文依次详述了YOLO26的架构创新,包括:移除了分布焦点损失(DFL);采用端到端的无NMS推理;集成了渐进损失(ProgLoss)与小目标感知标签分配(STAL);以及引入了用于稳定收敛的MuSGD优化器。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 217

SAP公司间STO业务解析(包含主数据解析、后台配置解析、前台业务演示)

SAP公司间STO业务解析

ww114784的博客 1018

Java通过JDBC连接Hive并进行操作

1.工程需要的maven依赖 注意:hive的依赖包的版本需要hive中间件中的lib下对应的hive包的版本一致,否则可能会有版本兼容问题。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sch..

houkai的博客 1万+

SCTPPortScan SCTP协议端口扫描、关联地址识别、传输状态检测

Windows:Winsock2+SCTP扩展)。- **SCTP API封装**:Linux下直接调用`socket()`、`connect()`、`getsockopt()`等系统函数,解析`struct sctp_status`和`struct sctp_paddrinfo`获取状态和关联地址。qDebug() << "开始SCTP扫描:" << ipList.size() << "个IP," << ports.size() << "个端口,共" << m_totalTasks << "个任务";

寒寒豆豆软件公司的博客 93

java 通过jdbc驱动连接hive操作实例

1,hive首先要起动远程服务接口,命令: nohup hive –service hiveserver  &  2,java工程中导入相应的需求jar包,列表如下: antlr-runtime-3.0.1.jar hive-exec-0.7.1.jar hive-

豹先生 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java通过JDBC驱动连接操作hive实例

Hive提供了jdbc驱动,使得我们可以用java代码来连接Hive并进行一些类关系型数据库的sql语句查询等操作。首先,我们必须将Hive的服务,也就是HiveServe打开。在Hive 0.11.0版本前,只有HiveServer服务可用,但是HiveServer本身存在很多问题(比如:安全性、并发性等);针对这些问题,Hive-0.11.0版本后提供了一个全新的服务:HiveServer2,

但行好事,莫问前程 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

java jdbc 操作 hive 建表 load 数据

// 需要引入 hadoop & hive jar import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; /** * 演示了通过java jdbc 操作hive ...

689

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

java hive建表_java jdbc 操作 hive 建表 load 数据

// 需要引入 hadoop & hive jarimport java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;/*** 演示了通过java jdbc 操作hive ,一般企业环境不会这么做 ,hive 目的是去java 编程能...

weixin_30038009的博客 583

Hive-JDBC操作,2024大厂Java开发面试总结+解答

作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2019 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Java程序员的技术功底。最近我整理了一份复习用的面试题及面试高频的考点题及技术点梳理成一份“Java经典面试问题(含答案解析).pdf和一份网上搜集的“Java程序员面试笔试真题库.pdf。

m0_61067876的博客 479

java JDBC 链接hive 操作实例

hive jdbc 操作

XD_122 1484

java通过jdbc驱动连接hive操作实例

基于hadoop的Hive数据仓库JavaAPI简单调用的实例,关于Hive的简介在此不赘述。hive提供了三种用户接口:CLI,JDBC/ODBC和 WebUI CLI,即Shell命令行JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似WebGUI是通过浏览器访问 Hive 本文主要介绍的就是第二种用户接口,直接进入正题。  1、Hive 安装:

零度的博客专栏 4426

java hive demo_java 操作hive通过jdbc

直接代码吧:记得要开启hive jdbc服务hive --service hiveserverpackage hive;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class HiveDemo {static{/...

weixin_34581040的博客 353

Hive Metastore Client 与 JDBC 对比:3 种 Java API 操作 Hive 4.2.0 的场景选择

本文深入对比了Hive Metastore Client、JDBC和HCatClient三种Java API在Hive 4.2.0中的技术特性和适用场景。通过性能数据和实战示例,帮助开发者根据业务需求选择最佳API方案,特别适合大数据生态中的Java开发者进行技术选型。

weixin_34378969的博客 907

java通过JDBC对hive操作遇到的错误

Caused by: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate hive 原因:hive不允许匿...

viho+的博客 1054
上一篇: Java 实现栈
下一篇: Java 简单的实现单链表
amyacker
博客等级 码龄9年 2粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值