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.keytab

2、获取账号
krb5hadoop hadoop/xxxx@EMR-QX9xxxx


3、加载代码
/**
     * 加载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();
        }
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/54835.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

海外网红营销:如何利用故事打造独具魅力的品牌形象?

随着全球数字化时代的来临&#xff0c;品牌推广已经从传统的广告宣传方式逐渐转变为更加注重故事性和情感共鸣的营销手段。故事营销在品牌塑造和传播过程中发挥着重要作用&#xff0c;它能够吸引消费者的注意力&#xff0c;加深品牌与受众的情感连接&#xff0c;从而为品牌带来…

单元测试框架中测试用例的执行顺序

一、用例用例全部执行与选择执行 单元测试用例的执行顺序按照定义的用例的名称的编码大小&#xff0c;从小到大依次执行&#xff0c;因此一般通过后缀001、002...等来规划测试用例的执行顺序&#xff0c;例如&#xff1a; import unittestclass F1(unittest.TestCase):def set…

3D Tiles官方示例资源下载链接

本文列出Cesium官方提供的 3D Tiles 1.0和1.1规范的9个示例切块集&#xff08;tileset&#xff09;。 有关如何使用本地服务器托管这些示例的详细信息&#xff0c;请参阅 INSTRUCTIONS.md。 推荐&#xff1a;用 NSDT设计器 快速搭建可编程3D场景。 1、Metadata Granularities …

【java线上监控】Arthas由菜鸟到菜鸡

目录 1 arthas介绍 1.1 简介 1.2 背景 1.3 Arthas&#xff08;阿尔萨斯&#xff09;能为你做什么&#xff1f; 2 window环境搭建 2.1 下载和启动 2.1 启动后&#xff1a;选择需要监控的服务 3 快速入门 3.1 打开浏览器 3.2 开启trace请求 3.3 查看 dashboard 3.6.…

在人间烟火里,卡萨帝开启品牌新征程

大暑刚过天正热&#xff0c;尤其是在今年厄尔尼诺现象席卷太平洋的背景下&#xff0c;人们对空调的需求持续“升温”。CCTV2财经频道《正点财经》在专题报道中提到&#xff0c;6月国内空调产销两旺&#xff0c;同比增长均在35%以上。 炙热的天气下&#xff0c;南方居民有更加难…

fiddler 手机抓包(含https) 完整流程

第一部分&#xff1a;下载并安装fiddler 一.使用任一浏览器搜索【fiddler下载安装】&#xff0c;并下载fiddler 安装包。 二.fiddler安装包下载成功后&#xff0c;将下载的fiddler压缩包解压到自定义文件夹【fiddler】或者解压到当前文件夹下&#xff0c;双击文件夹中的【fidd…

哈工大计算机网络课程局域网详解之:交换机概念

哈工大计算机网络课程局域网详解之&#xff1a;交换机概念 文章目录 哈工大计算机网络课程局域网详解之&#xff1a;交换机概念以太网交换机&#xff08;switch&#xff09;交换机&#xff1a;多端口间同时传输交换机转发表&#xff1a;交换表交换机&#xff1a;自学习交换机互…

【SCSS】网格布局中的动画

效果 index.html <!DOCTYPE html> <html><head><title> Document </title><link type"text/css" rel"styleSheet" href"index.css" /></head><body><div class"container">&l…

RabbitMQ 教程 | 第3章 客户端开发向导

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是 DevO…

什么是云原生和 CNCF?

一、CNCF简介 CNCF&#xff1a;全称Cloud Native Computing Foundation&#xff08;云原生计算基金会&#xff09;&#xff0c;成立于 2015 年 12 月 11 日&#xff0c;是一个开源软件基金会&#xff0c;它致力于云原生&#xff08;Cloud Native&#xff09;技术的普及和可持续…

Docker中gitlab以及gitlab-runner的安装与使用

1、本文主要讲述如何使用Docker安装gitlab以及gitlab-runner&#xff0c;并且会讲述gitlab-runner如何使用 2、gitlab部分不需要修改过多的配置即可使用&#xff0c;本文未讲述https配置&#xff0c;如有需求&#xff0c;可自行百度 3、Docker如何安装可以自行百度 一、Docker安…

保姆级教程,Linux服务器docker搭建jenkins持续集成一键部署SpringBoot项目(Gradle)

前言&#xff1a; 在后台项目开发过程从Java延伸到Kotlin开发&#xff0c;从maven pom到gradle&#xff0c;IDEA新项目SpringBoot init框架官方推荐kotlingradle&#xff0c;本章以此为jenkins持续集成做项目部署&#xff0c;服务器为Centos&#xff0c;JDK 17&#xff0c;Spr…

【C++】文件操作(囊括特殊情况:读文件遇到的空格被跳过、“文件只读一次“)

author&#xff1a;&Carlton tag&#xff1a;C topic&#xff1a;【C】文件操作&#xff08;囊括特殊情况&#xff1a;读文件遇到的空格被跳过、“文件只读一次”&#xff09; website&#xff1a;黑马程序员C date&#xff1a;2023年7月31日 目录 文本文件 写文件 源…

如何在面试IT公司时展现出色的表现

在面试IT技术岗位的过程中&#xff0c;展现出色的表现是至关重要的。下面我将分享一些我个人的经验和观察&#xff0c;希望对大家有所帮助。 首先&#xff0c;提前准备是非常重要的。在面试前&#xff0c;你应该充分了解目标公司的业务和技术需求。这样你就能更好地回答面试官…

基于Java+SpringBoot+Vue前后端分离电商项目

晚间lucky为友友们送福利啦~&#x1f381; Tips&#xff1a;有需要毕业设计指导的童鞋一定要认真看哦&#xff0c;文末有彩蛋。 一.项目介绍 该电商项目是一个简单、入门级的电商项目&#xff0c;是基于JavaSpringBootVue前后端分离项目。前端采用两套独立的系统分别完成项目…

手机的python怎么运行文件,python在手机上怎么运行

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;手机上的python怎么运行程序&#xff0c;手机的python怎么运行文件&#xff0c;今天让我们一起来看看吧&#xff01; 1、python程序怎么在手机上运行 python语言应用很广泛&#xff0c;自己也很喜欢使用它&#xff0c;其…

【机器学习】Cost Function for Logistic Regression

Cost Function for Logistic Regression 1. 平方差能否用于逻辑回归&#xff1f;2. 逻辑损失函数loss3. 损失函数cost附录 导入所需的库 import numpy as np %matplotlib widget import matplotlib.pyplot as plt from plt_logistic_loss import plt_logistic_cost, plt_two_…

【自动化剧本】Role角色

目录 一、Roles模块1.1roles的目录结构1.2roles 内各目录含义解释1.3在一个 playbook 中使用 roles 的步骤 二、使用Role编写LNMP剧本2.1 搭建Nginx角色2.2搭建Mysql角色2.3搭建php角色2.4lnmp剧本 一、Roles模块 roles用于层次性、结构化地组织playbook。roles能够根据层次型结…

vue基础-虚拟dom

vue基础-虚拟dom 1、真实dom目标2、虚拟dom目标 1、真实dom目标 在真实的document对象上&#xff0c;渲染到浏览器上显示的标签。 2、虚拟dom目标 本质是保存节点信息、属性和内容的一个JS对象 更新会监听变化的部分 给真实的DOM打补丁

vue 表单form-item模板(编辑,查看,新建)

目录 formatFormData 后端数据格式​编辑 JSON解析和生成 加载&#xff08;请求前&#xff0c;await后&#xff09; formComp formatFormData 后端数据格式 为空的&#xff0c;可以直接不提交/提交null/undefined JSON解析和生成 var str {"name": "…