【DBeaver】连接带kerberos的hive[Apache|HDP]

目录

一、安装配置Kerberos客户端环境

1.1 安装Kerberos客户端

1.2 环境配置

二、基于Cloudera驱动创建连接

三、基于Hive原生驱动创建连接


一、安装配置Kerberos客户端环境


1.1 安装Kerberos客户端


在Kerberos官网下载,地址如下:https://web.mit.edu/kerberos/dist/index.html

安装过程就是下一步 ,下一步那种。

1.2 环境配置


配置C:\ProgramData\MIT\Kerberos5\krb5.ini文件,将KDC Server服务器上/etc/krb5.conf文件中的部分内容,拷贝到krb5.ini中,如果直接将krb5.conf文件更名为krb5.ini并替换krb5.ini,会出现文件格式问题导致MIT Kerberos客户端无法正常启动。


[libdefaults]renew_lifetime = 7dforwardable = truedefault_realm = WINNER.COMticket_lifetime = 24hdns_lookup_realm = falsedns_lookup_kdc = falsedefault_ccache_name = C:\ProgramData\MIT\Kerberos5\krb5.cache#default_tgs_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5#default_tkt_enctypes = aes des3-cbc-sha1 rc4 des-cbc-md5[logging]default = FILE:/var/log/krb5kdc.logadmin_server = FILE:/var/log/kadmind.logkdc = FILE:/var/log/krb5kdc.log[realms]WINNER.COM = {admin_server = hdp-node1kdc = hdp-node1}

配置环境变量,krb5.ini以及Kerberos Credential Cache File的路径,

  • 变量名:KRB5_CONFIG,变量值:C:\ProgramData\MIT\Kerberos5\krb5.ini。
  • 变量名:KRB5CCNAME,变量值:C:\ProgramData\MIT\Kerberos5\krb5.cache。

kinit认证

DBeaver配置

因为DBeaver通过JDBC的方式访问Hive,底层也是基于Java环境,所以这里需要在DBeaver的配置中增加JVM的参数,主要添加关于Kerberos相关的配置。

进入DBeaver的安装目录,找到dbeaver.ini配置文件,在配置文件末尾增加如下配置:

-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf=C:\ProgramData\MIT\Kerberos5\krb5.ini
-Dsun.security.krb5.debug=true

需要重启DBeaver才可生效。


二、基于Cloudera驱动创建连接


HDP 集群

下载驱动

Download Hive JDBC Driver 2.6.25 | Cloudera

下载的HiveJDBC42.jar

Cloudera官网提供的JDBC驱动包比较简单只有一个jar包,Hive JDBC驱动包及其依赖包均打包在里面。具体访问方式如下:

添加jar文件

找到类

编辑驱动中设置URL和默认端口

  • 类名:com.cloudera.hive.jdbc.HS2Driver
  • URL:jdbc:hive2://hdp-node2:10000/default;AuthMech=1;KrbRealm=WINNER.COM;KrbHostFQDN=hdp-node2;KrbServiceName=hive;KrbAuthType=2
    1. AuthMech: 0无认证、1Kerberos认证、2用户名方式、3用户名和密码认证、6使用Hadoop授权认证
    2. KrbRealm:你的KDC服务定义的域名
    3. krbHostFQDN:你的HiveServer2服务的FQDN(hostname或你dns解析的域名)
    4. KrbServiceName:HiveServer2服务的Principal默认为hive
    5. KrbAuthType:0表示获取你的Subject来实现Kerberos认证、1表示基于JAAS方式获取Kerberos认证、2表示基于当前客户端的Tick Cache方式认证
  • 默认端口:10000

测试连接

显示已连接,在表示连接成功。

使用SQL编辑器查询


三、基于Hive原生驱动创建连接


基于开源的DDP集群测试,也就是原生的Apache Hive。

krb5.ini配置文件

[libdefaults]dns_lookup_realm = falseticket_lifetime = 24hrenew_lifetime = 7dforwardable = truerdns = falsedefault_realm = HADOOP.COM#default_ccache_name = KEYRING:persistent:%{uid}[realms]HADOOP.COM = {kdc = ddp01admin_server = ddp01}[domain_realm]
# .example.com = HADOOP.COM
# example.com = HADOOP.COM

获取hive的keytab文件后认证

DBeaver配置

因为DBeaver通过JDBC的方式访问Hive,底层也是基于Java环境,所以这里需要在DBeaver的配置中增加JVM的参数,主要添加关于Kerberos相关的配置。

进入DBeaver的安装目录,找到dbeaver.ini配置文件,在配置文件末尾增加如下配置,第一行是新增的配置需要添加不然测试连接会报错

--add-exports=java.security.jgss/sun.security.krb5=ALL-UNNAMED # 新增的
-Djavax.security.auth.useSubjectCredsOnly=false
-Djava.security.krb5.conf=C:\ProgramData\MIT\Kerberos5\krb5.ini
-Dsun.security.krb5.debug=true

jdbc依赖下载,并加载驱动类

  • URL模板:jdbc:hive2://{host}[:{port}][/{database}]/;principal=hive/{host}@HADOOP.COM
  • 默认端口:10000

填上hiveservice2主机名和访问端口

测试连接成功

数据查询


参考文档:0468-如何使用DBeaver访问Kerberos环境下的Hive-腾讯云开发者社区-腾讯云

kerberos方式连接hive hive配置kerberos_mob6454cc6c8549的技术博客_51CTO博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

总结一些高级的SQL技巧

1. 窗口函数 窗函数允许在查询结果的每一行上进行计算,而不需要将数据分组。这使得我们可以计算累积总和、排名等。 SELECT employee_id,salary,RANK() OVER (ORDER BY salary DESC) AS salary_rank FROM employees;2. 公用表表达式 (CTE) CTE 提供了一种更清晰的…

1.探索WebSocket:实时网络的心跳!

序言 你可能听说过"WebSokcet"这个词,感觉它好像很高深,但其实它是一个超级酷的小工具,让我们在Web应用里实现实时通信。想象一下,你可以像聊天一样,在浏览器和服务器之间来回“畅聊“,没有延迟…

芋道前端Vue项目中的配置文件

1.Vite配置相关文件 vite.config.ts build\vite\optimize.ts build\vite\index.ts package.json package-lock.json pnpm-lock.yaml types文件 types\router.d.ts types\global.d.ts types\env.d.ts types\custom-types.d.ts types\components.d.ts 环境配置 .env.test .e…

【大数据学习 | kafka】kafka的数据存储结构

以上是kafka的数据的存储方式。 这些数据可以在服务器集群上对应的文件夹中查看到。 [hexuanhadoop106 __consumer_offsets-0]$ ll 总用量 8 -rw-rw-r--. 1 hexuan hexuan 10485760 10月 28 22:21 00000000000000000000.index -rw-rw-r--. 1 hexuan hexuan 0 10月 28 …

做一个干电池的电量检测器03:数值拟合与电路仿真

首先在表格中进行详细的计算,整理出所需的数据。接着,我们运用MATLAB的强大功能对这些数据进行插值处理,生成了一个离散的数值数组。这个数组的每个数值都精确地对应着模数转换器(ADC)采样到的信号。通过这些数值&…

1、Java概述、HelloWorld案例

文章目录 今日内容介绍1.1 Java语言发展史和平台概述1.1.1 Java语言发展史1.1.2 Java语言版本1.1.3 Java平台概述1.2 JVM, JRE, JDK概述1.2.1 什么是跨平台?1.2.2 JVM, JRE, JDK说明1.3 常用DOS命令1.3.1 打开控制台1.3.2 常用命令1.4 下载安装JDK1.5 HelloWorld案例1.5.1 执行…

MFC工控项目实例二十八模拟量信号每秒采集100次

用两个多媒体定时器,一个定时0.1秒计时,另一个定时0.01秒用来对模拟量信号采集每秒100次。 1、在SEAL_PRESSUREDlg.h中添加代码 class CSEAL_PRESSUREDlg : public CDialo { public:CSEAL_PRESSUREDlg(CWnd* pParent NULL); // standard constructor&a…

【Mac】Screen Recorder by Omi Mac:Omi录屏专家

大家好,今天给大家介绍的这款软件叫Screen Recorder by Omi Mac:Omi录屏专家。 软件介绍 OmniRecorder for Mac 是一款用于录制屏幕的应用程序,专为 macOS 设计。它允许用户录制整个屏幕或特定区域,支持音频录制和实时编辑。这个…

多波束T50P和SES2000 Medium100安装记录(2024年10月)

SES2000 Medium100买了一直没有机会用,本次外业刚好需要。SES2000最大穿透70m。 Medium100安装与SES2000 Standard基本相同。除了钢管和法兰不同以外,它们安装支架都可以通用。有条件的话,用焊接方式将其固定在船侧舷,前方加一道拉…

Nginx安装配置详解

Nginx Nginx官网 Tengine翻译的Nginx中文文档 轻量级的Web服务器,主要有反向代理、负载均衡的功能。 能够支撑5万的并发量,运行时内存和CPU占用低,配置简单,运行稳定。 写在前 uWSGI与Nginx的关系 1. 安装 Windows 官网 Stabl…

保研考研机试攻略:python笔记(2)

🐨🐨🐨宝子们好呀,今天我们继续来学习N诺提供的python笔记,fighting!( •̀ ω •́ )✧ 对这个系列感兴趣的宝子欢迎关注保研考研机试攻略专栏哦 ~ 目录 🐨🐨🐨4进制转…

qt QSplitter详解

1、概述 QSplitter是Qt框架中的一个布局管理器类,它允许用户在应用程序窗口中创建可拖动的分隔器,以便动态地调整多个子窗口或控件的大小。QSplitter非常适合用于分割、重新排列和管理用户界面中的多个区域,提供了一种直观且灵活的方式来控制…

Spring Boot观察者模式实战

观察者模式简介 观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象间的一种一对多的依赖关系,当一个对象状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。这种模式也被称为发布-订阅模式、模型…

Java中消息队列——ActiveMQ、RabbitMQ、RocketMQ、Kafka

1.什么是消息中间件 消息中间件是一种专门的工具,帮助不同的应用程序通过发送和接收消息来进行交流。想象一下,一个公司里有多个部门(如销售、财务和物流),它们需要共享信息。消息中间件就像一个信使,负责将…

mysql left join group_concat 主表丢失数据

问题出现的场景: 有一个主表 a,一个子表 b a表有两条数据,a表第一条数据在b表中有一条子数据,a表第二条数据在b表中有两条子数据。 现在想要查询出来a表的所有数据和a表的子表b的id,b的id 使用GROUP_CONCAT拼接 有…

深度学习在复杂系统中的应用

引言 复杂系统由多个相互作用的组成部分构成,这些部分之间的关系往往是非线性的,整体行为难以通过简单的线性组合来预测。这类系统广泛存在于生态学、气象学、经济学和社会科学等多个领域,具有动态演变、自组织、涌现现象以及多尺度与异质性…

Python爬虫的京东大冒险:如何高效获取商品详情的秘籍

在这个由代码编织的电商世界里,京东商品详情就像是被锁在高塔中的公主,等待着勇敢的Python爬虫骑士去解救。今天,我们要讲述的是如何成为一名Python爬虫骑士,携带你的代码长矛,穿梭在API的数据森林中,高效获…

【RESTful】RESTful API:最佳实践指南

目录 引言一、URL 设计1.1 动词 宾语1.2 动词的覆盖1.3 宾语必须是名词1.4 复数 URL1.5 避免多级 URL 二、状态码2.1 状态码必须精确2.2 2xx 状态码2.3 3xx 状态码2.4 4xx 状态码2.5 5xx 状态码 三、其他最佳实践3.1 版本管理3.2 使用合适的媒体类型3.3 详细的错误响应3.4 安全…

一些关于云电脑与虚拟化东西

前言 好久没有更新了,在进行自我校准。 云计算是什么? 云计算是一种模型,它使得用户能够随时随地、方便地、按需访问共享的可配置计算资源池(例如,网络、服务器、存储、应用程序和服务),这些资…

服务器数据恢复—RAID5阵列中部分成员盘重组RAID5阵列后如何恢复原raid5阵列数据?

服务器数据恢复环境: 一台服务器挂接一台存储,该存储中有一组由5块硬盘组建的RAID5阵列。 服务器故障: 存储raid5阵列中有一块硬盘掉线。由于RAID5的特性,阵列并没有出现问题。工作一段时间后,服务器出现故障&#xff…