ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

windows下dbeaver客户端连接hive--kerberos认证方式

2020-04-30 14:01:15  阅读:777  来源: 互联网

标签:krb5 windows kerberos dbeaver hive 认证 conf 客户端


  本文实操环境是hadoop的cdh5.7版本,hive的认证方式是kerberos,kerberos的认证方式是基于客户机的,所以步骤可以分为两步:

1、dbeaver所在的机器完成kerberos认证

2、debaver通过jdbc连接hive

kerberos认证通过后在有效期之内,该机器都可以连接hive,但是要注意,机器重启后,认证可能会失效,过期或者失效之后重新执行认证命令即可。

一、kerberos认证

1、安装kerberos客户端

客户端下载地址如下:

https://web.mit.edu/kerberos/dist/index.html

 

下载完后点击安装即可。

2、cdh的认证文件准备

向cdh管理员索取krb5.keytab跟krb5.conf文件以及hive的用户名,krb5.conf文件默认路径为:/etc/krb5.conf

然后把krb5.conf文件的内容拷贝新建到文档krb5.ini,因为windows识别不到conf类型的配置文件。以下是我的krb5.ini的文件内容,我把它放到D:\krb5文件夹下:

3、配置环境变量

变量名:KRB5_CONFIG,变量值:D:\krb5\krb5.ini

变量名:KRB5CCNAME,变量值:C:\temp\krb5cache

KRB5CCNAME为认证成功后生成的认证缓存文件存放路径及文件名,要确保C:\temp路径存在,krb5cache是认证成功后自动生成的。

 

4、进行认证

按住菜单键+R,输入cmd,打开dos操作界面

 

 

 

进入kerberos客户端的安装目录下的bin文件夹

我安装客户端使用的是默认安装路径,所以输入以下命令:

cd C:\Program Files\MIT\Kerberos\bin

然后根据krb5.keytab进行认证,命令格式如下:

kinit -kt krb5.keytab 用户名

需要注意如果krb5.keytab并不在当前目录C:\Program Files\MIT\Kerberos\bin,则需要补充路径,认证完毕之后,可以执行命令klist查看认证有效期以及生成的缓存文档。

 

 

 

至此kerberos认证完毕。

二、dbeaver客户端配置

1、配置hosts文件

添加cdh各服务器的ip跟域名

 

 

2、创建hive连接

编辑驱动设置,上传hive的驱动包,注意一定要跟服务器端的版本一直,不然会出现报错

添加完之后点击找到类,选择正确的驱动

编辑URL模板,在后面加上内容“;principal=hive/{host}@EXAMPLE.COM”,注意{host}可以直接填写hiveserver2所在服务器的hostname代替,如:“;principal=hive/cdh1@EXAMPLE.COM”;@后面的内容是根据krb5.ini里面的default_realm值来填写。

修改完之后点击确定保存,返回上层填写jdbc的连接信息,

 

 

如果在url模板中直接的内容为“;principal=hive/{host}@EXAMPLE.COM”,那么主机只能填写hive服务器的hostname,如果填写内容为“;principal=hive/cdh1@EXAMPLE.COM”,那么主机名可以使用hive服务器的hostname也可以使用hive服务器的ip,填写数据库名称以及用户名后点击确定保存设置,然后在左侧点击连接数据库:

 

 

P.S.

1、jdbc链接的编写方式其实是由hive的配置文件hive-site.xml决定的,如图:

 

把value中的_HOST替换成hive的hostname即为连接模板。

2、在dbeaver创建hive的连接过程中,如果一旦出错,最好删除该链接重新创建,不然会出现很多虚假问题。

 

 

 

标签:krb5,windows,kerberos,dbeaver,hive,认证,conf,客户端
来源: https://www.cnblogs.com/fivedays/p/12808488.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有