保姆级连接FusionInsight MRS kerberos Hive

2023-11-24 18:45

本文主要是介绍保姆级连接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页面",如下图:

图片

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. 填充外网地址&数据库名称,然后测试链接

图片

图片

这篇关于保姆级连接FusionInsight MRS kerberos Hive的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/422387

相关文章

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨

Xshell远程连接失败以及解决方案

《Xshell远程连接失败以及解决方案》本文介绍了在Windows11家庭版和CentOS系统中解决Xshell无法连接远程服务器问题的步骤,在Windows11家庭版中,需要通过设置添加SSH功能并... 目录一.问题描述二.原因分析及解决办法2.1添加ssh功能2.2 在Windows中开启ssh服务2

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

Spring Boot实现多数据源连接和切换的解决方案

《SpringBoot实现多数据源连接和切换的解决方案》文章介绍了在SpringBoot中实现多数据源连接和切换的几种方案,并详细描述了一个使用AbstractRoutingDataSource的实... 目录前言一、多数据源配置与切换方案二、实现步骤总结前言在 Spring Boot 中实现多数据源连接

QT实现TCP客户端自动连接

《QT实现TCP客户端自动连接》这篇文章主要为大家详细介绍了QT中一个TCP客户端自动连接的测试模型,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录版本 1:没有取消按钮 测试效果测试代码版本 2:有取消按钮测试效果测试代码版本 1:没有取消按钮 测试效果缺陷:无法手动停

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

Java 连接Sql sever 2008

Java 连接Sql sever 2008 /Sql sever 2008 R2 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJDBC

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |