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

目录

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

[1.1 安装Kerberos客户端](#1.1 安装Kerberos客户端)

[1.2 环境配置](#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 = 7d
  forwardable = true
  default_realm = WINNER.COM
  ticket_lifetime = 24h
  dns_lookup_realm = false
  dns_lookup_kdc = false
  default_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.log
  admin_server = FILE:/var/log/kadmind.log
  kdc = FILE:/var/log/krb5kdc.log

[realms]
  WINNER.COM = {
    admin_server = hdp-node1
    kdc = 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 = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
 default_realm = HADOOP.COM
 #default_ccache_name = KEYRING:persistent:%{uid}

[realms]
 HADOOP.COM = {
  kdc = ddp01
  admin_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博客

相关推荐
神奇侠202413 小时前
Hive SQL常见操作
hive·hadoop·sql
SelectDB技术团队16 小时前
从 ClickHouse、Druid、Kylin 到 Doris:网易云音乐 PB 级实时分析平台降本增效
大数据·数据仓库·clickhouse·kylin·实时分析
itachi-uchiha19 小时前
Docker部署Hive大数据组件
大数据·hive·docker
viperrrrrrrrrr719 小时前
大数据学习(131)-Hive数据分析函数总结
大数据·hive·学习
Leo.yuan1 天前
API是什么意思?如何实现开放API?
大数据·运维·数据仓库·人工智能·信息可视化
qq_408413391 天前
spark 执行 hive sql数据丢失
hive·sql·spark
TDengine (老段)1 天前
TDengine 替换 Hadoop,彻底解决数据丢失问题 !
大数据·数据库·hadoop·物联网·时序数据库·tdengine·涛思数据
workflower1 天前
量子比特实现方式
数据仓库·服务发现·需求分析·量子计算·软件需求
yt948322 天前
如何在IDE中通过Spark操作Hive
ide·hive·spark
青春之我_XP2 天前
【基于阿里云搭建数据仓库(离线)】Data Studio创建资源与函数
大数据·数据仓库·sql·dataworks·maxcompute·data studio