当前位置: 首页 > news >正文

Java使用hive连接kyuubi

标识

一、Maven依赖

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

二、相关配置信息

驱动类:org.apache.hive.jdbc.HiveDriver连接URL:jdbc:hive2://xxx:2181,xxx:2181/;principal=hadoop/xxx@EMR-GMxxx;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=kyuubi;?spark.app.name=test-kyuubi;kyuubi.engine.share.level=USER;spark.submit.deployMode=cluster;kyuubi.session.engine.check.interval=PT5M;kyuubi.session.engine.idle.timeout=PT30M;
【注意】:
principal 配置的信息为账号鉴权信息
zooKeeperNamespace 需要指定为 kyuubi
?后的参数为kyuubi配置参数

三、 Kerberos 身份验证

1、需要准备两个文件,可以从集群kerberos配置里拷贝
krb5 /app/data/config/kerberos/krb5.conf
krb5Keytab /app/data/config/kerberos/emr.keytab2、获取账号
krb5hadoop hadoop/xxxx@EMR-QX9xxxx3、加载代码
/*** 加载hive krb 配置*/public void loadingHiveKrbConfig() {try {log.info("加载hive krb 配置");System.setProperty("java.security.krb5.conf", krb5);Configuration configuration = new Configuration();configuration.setBoolean("hadoop.security.authorization", true);configuration.set("hadoop.security.authentication", "Kerberos");UserGroupInformation.setConfiguration(configuration);if (UserGroupInformation.isLoginKeytabBased()) {log.info("UserGroupInformation.isLoginKeytabBased() is ture");UserGroupInformation.getLoginUser().reloginFromKeytab();} else {log.info("UserGroupInformation.isLoginKeytabBased() is false");UserGroupInformation.loginUserFromKeytab(krb5hadoop, krb5Keytab);}log.info("ticketCache=====>" + UserGroupInformation.isLoginTicketBased());} catch (Exception e) {log.error("加载hive krb 配置 失败:", e);e.printStackTrace();}}

四、连接代码

Connection connection = null;HiveStatement statement = null;HiveQueryResultSet resultSet = null;try {loadingHiveKrbConfig();Class.forName("org.apache.hive.jdbc.HiveDriver"));connection = DriverManager.getConnection(url);statement = (HiveStatement) connection.createStatement();resultSet = (HiveQueryResultSet) statement.executeQuery(sql);} catch (Exception e) {e.printStackTrace();} finally {try {if (null != resultSet) {resultSet.close();}if (null != statement) {statement.close();}if (null != connection) {connection.close();}} catch (final Exception e) {e.printStackTrace();}}

相关文章:

Java使用hive连接kyuubi

一、Maven依赖 <dependency><groupId>org.apache.hive</groupId><artifactId>hive-jdbc</artifactId><version>2.3.9</version> </dependency> 二、相关配置信息 驱动类&#xff1a;org.apache.hive.jdbc.HiveDriver连接UR…...

性能测试基础知识(三)性能指标

性能测试基础知识&#xff08;三&#xff09;性能指标 前言一、时间特性1、响应时间2、并发数3、吞吐量&#xff08;TPS&#xff09; 二、资源特性1、CPU利用率2、内存利用率3、I/O利用率4、网络带宽使用率5、网络传输速率&#xff08;MB/s&#xff09; 三、实例场景 前言 性能…...

【 Redis】的乱码问题

问题描述&#xff1a; 使用RedisTemplate存储的数据&#xff0c;在 redis-cli 客户端查看时&#xff0c;key 和 value 都会携带类似\xac\xad\这样的字符串。 原因&#xff1a; 由于默认使用了 jdk 的序列化方式。以下是支持的序列化方式 项目一般都会有缓存&#xff0c;常常…...

虚拟机安装的问题

CentOS7报错: Host SMBus Controller not enabled! 1.在上图界面中直接输入root用户的密码登录到系统 2.输入命令&#xff0c;lsmod | grep i2c 3.输入命令&#xff0c;vi /etc/modprobe.d/blacklist.conf 创建黑名单&#xff0c;添加以下内容&#xff1a; blacklist i2c_piix…...

seldom之数据驱动

seldom之数据驱动 如果自动化某个功能&#xff0c;测试数据不一样而操作步骤是一样的&#xff0c;那么就可以使用参数化来节省测试代码。 seldom是我在维护一个Web UI自动化测试框&#xff0c;这里跟大家分享seldom参数化的实现。 GitHub&#xff1a;GitHub - SeldomQA/seld…...

设计模式:生成器模式

这个模式书上讲的比较简单&#xff0c;但是感觉精华应该是讲到了。 引用下其它博客的总结&#xff1a;生成器模式的核心在于分离构建算法和具体的构造实现&#xff0c;从而使得构建算法可以重用。 【设计模式】建造者模式_鼠晓的博客-CSDN博客...

Gradle同步任务一直不动问题(非网络情况)

最近更新ComposeViews的Kotlin和Compose版本,升级到Kotlin1.9和Compose1.4.3时遇见一个问题,Gradle同步时始终会卡在一个位置,同步了一晚上也没用 然后又试了两次还是不行,猜测可能是Gradle的问题,于是使用命令行进行同步,并打印debug日志 ./gradlew -debug -refresh-dependen…...

STM32使用HAL库BH1750光照度传感器

开发环境 单片机&#xff1a;STM32F103C8T6 光照度传感器&#xff1a;BH1750 IDE&#xff1a;KEILSTM32CUBEMX 单片机配置 1、STM32CUBEMX BH1750代码 1、头文件 /* ************************************************* BH1750光照数据计算&#xff08;LUX&#xff09; …...

qt代码练习

计时器练习 namespace Ui { class third; }class third : public QWidget {Q_OBJECTpublic:explicit third(QWidget *parent nullptr);~third();QLabel *labth1 new QLabel(this);QTextEdit *txtth1 new QTextEdit("闹钟",this);QLineEdit *leth1 new QLineEdit(t…...

PoseiSwap:首个基于模块化设施构建的订单簿 DEX

在前不久&#xff0c;PoseiSwap 曾以1000万美元的估值&#xff0c;获得了来自于ZebecLabs基金会的150万美元的融资。此后 PoseiSwap 又以2500万美元的估值&#xff0c;从GateLabs、EmurgoVentures、Republic以及CipholioVentures等行业顶级投资机构中&#xff0c;获得了新一轮未…...

Linux NameSpace 虚拟化 资源隔离

NameSpace NameSpace介绍 在操作系统中命名空间命名空间提供的是系统资源的隔离&#xff0c;其中系统资源包括了&#xff1a;进程、网络、文件系统等等 实际上linux系统实现命名空间主要目的之一就是为了实现轻量级虚拟化服务&#xff0c;也就是我们说的容器&#xff0c;在同…...

【Android Framework系列】第9章 AMS之Hook实现登录页跳转

1 前言 前面章节我们学习了【Android Framework系列】第5章 AMS启动流程和【Android Framework系列】第6章 AMS原理之Launcher启动流程&#xff0c;大概了解了AMS的原理及启动流程&#xff0c;这一章节我们通过反射和动态代理对不同Android版本下的AMS进行Hook&#xff0c;实现…...

哪些行业需要连接云专线?

在诸多行业之中&#xff0c;有一些行业对数据安全性要求高、业务需要实时性、业务需求复杂&#xff0c;往往需要建立起私密、高速、安全的传输通道&#xff0c;云专线是他们经常采用的方案。具体来讲&#xff0c;都有哪些行业需要连接云专线呢&#xff1f;请见下方。 1、金融行…...

【Mysql】group语句删除重复数据只保留一条

【Mysql】group语句删除重复数据只保留一条 【一】案例分析 假如在数据初始化的时候&#xff0c;insert脚本执行了两次&#xff0c;导致表里的数据都是重复的&#xff08;没有设置唯一键&#xff09;。这个时候再加上mybatis-plus的selectOne方法&#xff0c;就会出现报错。因…...

Git详解和命令大全

目录 一、Git 的基本概念二、Git 的安装和使用三、Git 的版本分支管理四、Git 的命令大全1. 常用命令2. 命令大全 五、版本分支管理的最佳实践六、Git 实践七、高级特性八、Git 的未来发展 Git 是一款开源的分布式版本控制系统&#xff0c;可以有效地处理从小到非常大的项目版本…...

北漂Java程序员入职五个月的收获总结

&#x1f468;‍&#x1f4bb;博主主页&#xff1a;小尘要自信 &#x1f468;‍&#x1f4bb;本文专栏&#xff1a;Java程序员的成长 &#x1f468;‍&#x1f4bb;上一篇文章&#xff1a;告别过去&#xff0c;拥抱未来&#xff1a;一个Java开发者的成长之路 &#x1f468;‍&a…...

Android系统的进程管理(创建->优先级->回收)

一、进程的创建 1、概述 Android系统以Linux内核为基础&#xff0c;所以对于进程的管理自然离不开Linux本身提供的机制。例如&#xff1a; 通过fork来创建进行通过信号量来管理进程通过proc文件系统来查询和调整进程状态 等 对于Android来说&#xff0c;进程管理的主要内容…...

C#界面美化小技巧

1.窗体设置为无边框 FormBorderStyle的属性设置为none 2.窗体无边框&#xff0c;可以拖拽 private Point mPoint new Point(); private void Download_MouseDown(object sender, MouseEventArgs e) { mPoint.X e.X; mPoint.Y e.Y; …...

‘vite‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

1.切换到工程目录下 2.执行npm install(最关键的一步了&#xff01;&#xff01;) 3. 最后直接运行&#xff1a;npm run dev 4.浏览器直接打开就行了&#xff01;...

Linux下查阅帮助文档必学命令 man

Linux操作系统的使用中,我们经常会遇到很多问题,这个时候查询文档的能力至关重要,黄老师来推荐大家使用man,这时我们必须掌握的查阅能力: 最常用的命令: man 名称 man 数字(1~9) 名称 这里的数字分别代表:...

Qwen3-VL-WEBUI效果实测:对比其他模型,看看优势在哪里

Qwen3-VL-WEBUI效果实测&#xff1a;对比其他模型&#xff0c;看看优势在哪里 1. 引言&#xff1a;当AI不仅能“看”&#xff0c;还能“做” 想象一下&#xff0c;你给AI看一张软件界面的截图&#xff0c;它不仅能告诉你界面上有什么&#xff0c;还能一步步指导你如何操作&am…...

虚拟机异常断电后卡在initramfs阶段?手把手教你用xfs_repair修复系统分区

1. 虚拟机异常断电的常见后果 最近在调试一个基于KVM的虚拟机集群时&#xff0c;遇到了一个典型问题&#xff1a;机房突然断电后&#xff0c;几台虚拟机重启时卡在了initramfs阶段&#xff0c;屏幕上不断刷出"generating /run/initramfs/rdsosreport.txt"的提示。这种…...

(论文速读)HyperFusion-DEIM:遥感影像中多路径关注与尺度感知融合的精确物体检测

论文题目&#xff1a;遥感影像中多路径关注与尺度感知融合的精确物体检测&#xff08;Multi path attention and scale aware fusion for accurate object detection in remote sensing imagery&#xff09;期刊&#xff1a;Scientific Reports摘要&#xff1a;在遥感图像中追求…...

RxDataSources编辑功能详解:如何实现TableView的增删改操作

RxDataSources编辑功能详解&#xff1a;如何实现TableView的增删改操作 【免费下载链接】RxDataSources UITableView and UICollectionView Data Sources for RxSwift (sections, animated updates, editing ...) 项目地址: https://gitcode.com/gh_mirrors/rx/RxDataSources…...

可视化拖拽组件库终极指南:响应式设计与适配方案完整解析

可视化拖拽组件库终极指南&#xff1a;响应式设计与适配方案完整解析 【免费下载链接】visual-drag-demo 一个低代码&#xff08;可视化拖拽&#xff09;教学项目 项目地址: https://gitcode.com/gh_mirrors/vi/visual-drag-demo 可视化拖拽组件库是现代低代码开发平台的…...

用Qwen3-VL-30B做智能助手:上传文档图片,自动提取关键信息

用Qwen3-VL-30B做智能助手&#xff1a;上传文档图片&#xff0c;自动提取关键信息 1. 为什么需要智能文档处理助手 每天我们都会遇到大量需要处理的文档和图片&#xff1a;合同、发票、报告、表格、名片...手动输入这些信息不仅耗时耗力&#xff0c;还容易出错。传统OCR技术虽…...

Vivado实战:从零封装自定义接口IP核的完整流程

1. 为什么需要封装自定义IP核 第一次接触FPGA开发时&#xff0c;我总喜欢把整个工程的所有代码都堆在一个项目里。直到某天需要复用之前的HDMI显示模块时&#xff0c;才发现要手动复制几十个文件&#xff0c;还得逐个修改端口连接。这种重复劳动让我意识到&#xff1a;封装IP核…...

gte-base-zh在AIGC内容审核中的应用

gte-base-zh在AIGC内容审核中的应用 最近和几个做AIGC应用的朋友聊天&#xff0c;大家普遍反映一个头疼的问题&#xff1a;内容审核。用户生成的内容五花八门&#xff0c;数量巨大&#xff0c;单靠人工审核&#xff0c;不仅成本高&#xff0c;还容易漏掉一些打擦边球或者变着花…...

SmolVLA部署案例:树莓派5+USB GPU加速器运行SmolVLA轻量版可行性探索

SmolVLA部署案例&#xff1a;树莓派5USB GPU加速器运行SmolVLA轻量版可行性探索 1. 引言 你有没有想过&#xff0c;让一个巴掌大的树莓派也能跑起来一个能“看懂”世界、听懂指令、并控制机器人动作的AI模型&#xff1f;这听起来像是科幻电影里的场景&#xff0c;但今天我们要…...

Swagger2Word:高效转换与文档自动化的API文档解决方案

Swagger2Word&#xff1a;高效转换与文档自动化的API文档解决方案 【免费下载链接】swagger2word 项目地址: https://gitcode.com/gh_mirrors/swa/swagger2word 在软件开发过程中&#xff0c;API文档的管理和维护常常成为团队协作的痛点。开发人员使用Swagger/OpenAPI规…...