写点什么

保姆级连接 FusionInsight MRS kerberos Hive

  • 2023-11-24
    浙江
  • 本文字数:2776 字

    阅读完需:约 9 分钟

数新网络,让每个人享受数据的价值

概述

 本文将介绍在华为云 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 页面",如下图:


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


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


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


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


填写如下信息:

· 角色名称:例如 mrrole。

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


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


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

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

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

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

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

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

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


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


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



注意:

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


三、准备工作

1. 下载 hive 客户端配置

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

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

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

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


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

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

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


2. 下载 keytab 文件

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

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

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

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

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


3. 查看系统生成 principal

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


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



4. idea 引入本地依赖

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


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


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

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

e. 加载完成


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 示例

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

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

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

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

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


2. 自测代码示例如下

a. hiveServer2 方式

· 执行结果如下

b. zookeeper 连接方式

注意:

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

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

· 执行结果如下


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 官网地址

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

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

d. 选择自定义安装

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

f. 取消开机自启->Next

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

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

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


2. 配置环境变量

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

b. 配置环境变量

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


3. DBeaver 安装

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


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



c. 选择我接受

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

e. 选择语言->ok

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


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

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

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

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

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


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


三、DBeaver 创建连接

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



2. 编辑驱动设置


3. 配置 URL 模板

a. URL 模板如下

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

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

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


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




5. 点击找到类->确定


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



发布于: 刚刚阅读数: 4
用户头像

云数据智能操作系统领军者 2022-12-05 加入

浙江数新网络有限公司是一家拥抱开源,专注于云数据平台的大数据服务商,致力于结合全球云数仓先进理念,打造适合中国落地路径的云数仓体系。

评论

发布
暂无评论
保姆级连接FusionInsight MRS kerberos Hive_Java_数新网络官方账号_InfoQ写作社区