保姆级连接FusionInsight MRS kerberos Hive

数新网络,让每个人享受数据的价值icon-default.png?t=N7T8https://xie.infoq.cn/link?target=https%3A%2F%2Fwww.datacyber.com%2F

概述

 本文将介绍在华为云 FusionInsight MRS(Managed Relational Service)的Kerberos环境中,如何使用Java和DBeaver实现远程连接Hive的方法。 

JAVA 方式

一、测试环境信息

1. MRS 3.1.5 安全集群(开启kerberos)

2. windows 11 64位,需要和MRS集群网络互通

3. IntelliJ IDEA 2022.3.2

二、创建角色和用户

1. 登录MRS管理控制台页面。

2. 单击"集群列表",在"现有集群"列表,单击指定的集群名称,进入集群信息页面。

3. 单击“集群管理页面”后的"前往Manager",打开Manager页面。

a. 在弹性公网IP下拉框中选择可用的弹性公网IP或单击“管理弹性公网IP”购买弹性公网IP,并进行绑定。

b. 勾选"我确认xx.xx.xx.xx为可信任的公网访问IP,并允许从该IP访问MRS Manager页面",如下图:

保姆级连接FusionInsight MRS kerberos Hive_第1张图片

4. 点击"确定",进入Manager登录页面。

5. 输入创建集群时默认的用户名"admin"及设置的密码,点击"登录"进入Manager页面。

6. 在Manager 界面选择"系统 > 权限 > 角色",如下图:

保姆级连接FusionInsight MRS kerberos Hive_第2张图片

7. 点击"添加角色",如下图:

保姆级连接FusionInsight MRS kerberos Hive_第3张图片

填写如下信息:

· 角色名称:例如mrrole。

· 配置资源权限:选择“HDFS > 文件系统 ”,勾选“权限”列的“读”、“写”和“执行”,勾选完全后,不要单击确认,要单击如下图的待操作的集群名,再进行后面权限的选择,其余产品也是类似操作,直至全部产品权限都已选择完成。

保姆级连接FusionInsight MRS kerberos Hive_第4张图片

8. 选择“系统 > 权限 > 用户组 > 添加用户组”,为样例工程创建一个用户组,例如mrgroup,如下图:

保姆级连接FusionInsight MRS kerberos Hive_第5张图片

9. 选择“系统 > 权限 > 用户 > 添加用户”,为样例工程创建一个用户,最后点击"确定"完成用户创建。如下图:

· 用户名:例如test,当需要执行Hive程序时,请设置用户名为“hiveuser”。

· 用户类型:“人机”用户。

· 密码:输入密码(特别注意该密码在后面运行程序时要用到)

· 用户组:加入用户组mrgroup和supergroup。

· 主组:设置其“主组”为supergroup,

· 角色:绑定角色mrrole取得权限。

保姆级连接FusionInsight MRS kerberos Hive_第6张图片

10. 选择“系统 > 权限 > 用户”,选择新建用户test,选择“更多 >下载认证凭据”,保存后解压得到用户的keytab文件与krb5.conf文件。

图片

11. ECS 登录kerberos用户,第一次登录会默认重置密码的

图片

保姆级连接FusionInsight MRS kerberos Hive_第7张图片

注意:

· 如果在部署MRS服务的ECS上使用密码登录需要先进行密码重置,重置密码不可以与添加用户的一致。重置过后需重新下载认证凭证。

三、准备工作

1. 下载hive客户端配置

a. 登录MRS管理控制台页面

b. 单击“集群列表 > 现有集群”,在集群列表中单击指定的集群名称,进入集群信息页面。

c. 输入账号密码进入Manager页面

d. 选择“主页 -> hive -> 更多-下载客户端”

保姆级连接FusionInsight MRS kerberos Hive_第8张图片

保姆级连接FusionInsight MRS kerberos Hive_第9张图片

e. 选择完成客户端 ->x86_64-> 确定,下载到本地windows环境下

保姆级连接FusionInsight MRS kerberos Hive_第10张图片

f. 下载完成后打开此文件

保姆级连接FusionInsight MRS kerberos Hive_第11张图片

g. 根据如下图片中的目录将jdbc文件复制到本地

保姆级连接FusionInsight MRS kerberos Hive_第12张图片

2. 下载keytab 文件

a. 登录MRS管理控制台页面

b. 单击“集群列表 > 现有集群”,在集群列表中单击指定的集群名称,进入集群信息页面。

c. 输入账号密码进入Manager页面

d. 选择系统->更多->下载认证凭证,下载到本地windows环境下

保姆级连接FusionInsight MRS kerberos Hive_第13张图片

e. 将下载到本地的krb5.conf 文件内的地址修改为外网地址

3. 查看系统生成principal

a. 登录到MRS集群ECS服务器,执行如下命令

图片

图片

b. 执行如下命令,查看系统principal 

图片

保姆级连接FusionInsight MRS kerberos Hive_第14张图片

4. idea 引入本地依赖

a.打开创建好的maven项目,创建lib 文件夹,将JDBC文件夹内的jar放入lib目录下

保姆级连接FusionInsight MRS kerberos Hive_第15张图片

保姆级连接FusionInsight MRS kerberos Hive_第16张图片

b. 点击flie -> Project Stucture-> Moduies

保姆级连接FusionInsight MRS kerberos Hive_第17张图片

保姆级连接FusionInsight MRS kerberos Hive_第18张图片

c. 选择文件夹然后点击OK

保姆级连接FusionInsight MRS kerberos Hive_第19张图片

d. 勾选上选择的文件,然后点击apply->ok

保姆级连接FusionInsight MRS kerberos Hive_第20张图片

e. 加载完成

保姆级连接FusionInsight MRS kerberos Hive_第21张图片

5. idea 引入配置文件

a. 将修改完成的krb5.conf 导入至resources

b. 将user.keytab导入至resources

图片

四、JAVA 代码示例

1. 华为云使用代码连接kerberos Hive URL 示例

a. HiveServer2 连接URL示例

图片

o {host}:弹性公网地址或内网地址

o {port}:hiveserver2 端口,默认10000

o {yousystemuser}:创建MRS集群系统为每个产品生成的principal,查看方式参考"系统生成principal"

o {youruser}:在"创建角色和用户"创建的用户名称(注:无需跟realm也可以)

o {yourkeytabpath}:自己用户的keytab文件路径,keytab下载方式参考"下载keytab文件"

b. Zookeeper 连接URL示例

保姆级连接FusionInsight MRS kerberos Hive_第22张图片

o {host}:弹性公网地址或内网地址

o {port}:zookeeper 端口,默认2181

o {yousystemuser}:创建MRS集群系统为每个产品生成的principal,查看方式参考"系统生成principal"

o {youruser}:在"创建角色和用户"创建的用户名称(注:无需跟realm也可以)

o {yourkeytabpath}:自己用户的keytab文件路径,keytab下载方式参考"下载keytab文件"

2. 自测代码示例如下

a. hiveServer2 方式

保姆级连接FusionInsight MRS kerberos Hive_第23张图片

· 执行结果如下

保姆级连接FusionInsight MRS kerberos Hive_第24张图片

b. zookeeper 连接方式

注意:

o zookeeper连接方式必须以内网进行连接,购买华为云ECS Windows 服务器或打jar包形式

o 上传krb5.conf &user.keytab文件到 ECS服务器上,代码中地址进行修改

保姆级连接FusionInsight MRS kerberos Hive_第25张图片

· 执行结果如下

保姆级连接FusionInsight MRS kerberos Hive_第26张图片

DBeaver 方式

一、测试环境信息

1. MRS 3.1.5 安全集群(开启kerberos)

2. windows 11 64位,需要和MRS集群网络互通

3. DBeaver 21.3.0版本 64bit

4. MIT 4.1 版本 64bit

二、准备工作

1. MIT 安装

a. 在官网下载对应的MIT版本,kerberos MIT官网地址

保姆级连接FusionInsight MRS kerberos Hive_第27张图片

b. 下载完成后打开,点击"Next"

保姆级连接FusionInsight MRS kerberos Hive_第28张图片

c. 选择同意协议并点击"Next"

保姆级连接FusionInsight MRS kerberos Hive_第29张图片

d. 选择自定义安装

保姆级连接FusionInsight MRS kerberos Hive_第30张图片

e. 点击 Browse-> look in -> ok-> Next

保姆级连接FusionInsight MRS kerberos Hive_第31张图片

f. 取消开机自启->Next

保姆级连接FusionInsight MRS kerberos Hive_第32张图片

g. 点击"Install",开始安装Kerberos

保姆级连接FusionInsight MRS kerberos Hive_第33张图片

h. 等待安装结束后点击"Finish"

保姆级连接FusionInsight MRS kerberos Hive_第34张图片

i. 选择Yes,重启完成后进行下一步

保姆级连接FusionInsight MRS kerberos Hive_第35张图片

2. 配置环境变量

a. 将修改完成的krb5.conf 文件重命名为krb5.ini,并放置某一路径下(例:D:\softwarePackage\kerberos)

b. 配置环境变量

保姆级连接FusionInsight MRS kerberos Hive_第36张图片

c. 进入到安装MIT的bin目录下,进行认证测试

保姆级连接FusionInsight MRS kerberos Hive_第37张图片

3. DBeaver安装

a. 官网下载对应的DBeaver版本,DBeaver官网

保姆级连接FusionInsight MRS kerberos Hive_第38张图片

保姆级连接FusionInsight MRS kerberos Hive_第39张图片

b. 打开下载的exe文件->选择语言模式->ok->下一步

图片

保姆级连接FusionInsight MRS kerberos Hive_第40张图片

保姆级连接FusionInsight MRS kerberos Hive_第41张图片

c. 选择我接受

保姆级连接FusionInsight MRS kerberos Hive_第42张图片

d. 选择多用户使用->下一步

保姆级连接FusionInsight MRS kerberos Hive_第43张图片

e. 选择语言->ok

保姆级连接FusionInsight MRS kerberos Hive_第44张图片

f. 点击下一步->我接受

保姆级连接FusionInsight MRS kerberos Hive_第45张图片

保姆级连接FusionInsight MRS kerberos Hive_第46张图片

g. 选择安装的组件,DBeaver 21.3 版本java版本需要≥11,如果本机java环境大于11的话取消勾选"Include Java","DBeaver Community"是必选项,然后点击下一步

保姆级连接FusionInsight MRS kerberos Hive_第47张图片

h. 选择部署的目标文件夹,然后点击下一步

保姆级连接FusionInsight MRS kerberos Hive_第48张图片

i. 选择安装DBeaver 菜单栏名称(默认即可)->安装

保姆级连接FusionInsight MRS kerberos Hive_第49张图片

j. 等待安装完成,勾选"Create Desktop Shortcut"(桌面快捷方式)->点击完成

保姆级连接FusionInsight MRS kerberos Hive_第50张图片

k. 安装完成后,进入DBeaver安装路径,在dbeaver.ini追加如下内容,然后保存退出,配置完成后需要重启DBeaver

保姆级连接FusionInsight MRS kerberos Hive_第51张图片

图片

注意:java.security.krb5.conf路径替换为自己的主机所在的地址

三、DBeaver 创建连接

1. 打开DBeaver->创建新连接->选择Hive->点击下一步

保姆级连接FusionInsight MRS kerberos Hive_第52张图片

保姆级连接FusionInsight MRS kerberos Hive_第53张图片

2. 编辑驱动设置

保姆级连接FusionInsight MRS kerberos Hive_第54张图片

3. 配置URL模板

a. URL 模板如下

图片

o {yousystemuser} 替换自己MRS集群的principal,查找方式参考"查看系统生成principal"

o {port}:替换为自己Hive端口

b. 将URL模板填充至标红部分

保姆级连接FusionInsight MRS kerberos Hive_第55张图片

4. 选择需要引入的jar,下载步骤参考"下载hive客户端配置"

图片

保姆级连接FusionInsight MRS kerberos Hive_第56张图片

保姆级连接FusionInsight MRS kerberos Hive_第57张图片

5. 点击找到类->确定

保姆级连接FusionInsight MRS kerberos Hive_第58张图片

6. 填充外网地址&数据库名称,然后测试链接

保姆级连接FusionInsight MRS kerberos Hive_第59张图片

保姆级连接FusionInsight MRS kerberos Hive_第60张图片

你可能感兴趣的:(hive,java,华为云,DBeaver)