为已有集群配置LakeFormation数据连接
该章节指导用户为当前已有的MRS 3.6.0-LTS及之后版本未开启Kerberos认证的集群对接LakeFormation。
前提条件
- MRS集群已关闭Kerberos认证,且集群为MRS 3.6.0-LTS及之后版本。
- MRS集群已开启存算分离,数据存储在OBS中。
- 集群的区域与LakeFormation实例保持一致。集群的虚拟私有云与LakeFormation数据连接保持一致。
- 集群需包含Hadoop、Ranger、Hive、Guardian、Spark(可选)、Flink(可选)等组件。
- Ranger组件至少包含1个PolicySync(PSC)实例(该实例部署节点需要包含RangerAdmin实例)、Guardian组件至少包含2个TokenServer(TS)实例。
- 如果集群配置LakeFormation数据连接后再添加Spark组件,Spark配置对接LakeFormation只需要在数据连接中选择解绑Hive的LakeFormation数据连接,然后重新配置即可。
- MRS集群创建成功后,已通过MRS管理控制台同步IAM用户,且集群各服务运行正常。
配置MRS集群对接LakeFormation
- 登录MRS控制台,选择“现有集群”。
- 单击待对接的MRS名称进入集群“概览”页签。
- 单击“委托”后的“选择委托”,选择创建对接ECS/BMS云服务委托创建的委托名称。
如果当前MRS集群已绑定委托,请根据实际情况确认原委托的权限策略是否需要保留,如果需要保留请将其添加到创建对接ECS/BMS云服务委托创建的委托上,然后将该委托绑定到MRS集群上(修改后委托权限生效有一定延后性)。

- 单击“数据连接”右侧的“单击管理”,进入数据连接配置界面。
- 单击“配置LakeFormation数据连接”,在下拉框中选择创建LakeFormation数据连接记录的LakeFormation数据连接ID,单击“确定”。(如果已存在Hive的本地数据库数据连接,不需要解绑)
配置LakeFormation数据连接的功能,需要联系技术支持申请开通白名单。
图1 配置LakeFormation数据连接
- 登录MRS集群的FusionInsight Manager页面,具体操作请参考访问FusionInsight Manager(MRS 3.x及之后版本)。
- 配置Guardian。
- 在FusionInsight Manager界面,选择“集群 > 服务 > Guardian > 配置 > 全部配置”,搜索并修改以下参数后,单击“保存”。
表1 配置Guardian参数 参数
含义
取值
token.server.access.iam.domain.id
访问IAM的用户对应的账号 ID。
参考获取账号ID信息获取账号ID信息。
xxx
token.server.access.iam.project.id
访问IAM的用户对应的项目ID。
参考获取账号ID信息获取项目ID信息。
xxx
token.server.access.label.agency.name
指定IAM委托的名字,需要具有访问OBS的权限。
即创建对接OBS权限的委托创建的委托名称。
visit_obs_agency
fs.obs.delegation.token.providers
delegation.token的产生类名,默认为空。
此处同时勾选以下参数值:
- com.huawei.mrs.dt.MRSDelegationTokenProvider
- com.huawei.mrs.dt.GuardianDTProvider
com.huawei.mrs.dt.MRSDelegationTokenProvider,com.huawei.mrs.dt.GuardianDTProvider
fs.obs.guardian.accesslabel.enabled
是否开启使用Guardian对接OBS的access label。
true
fs.obs.guardian.enabled
是否开启使用Guardian。
true
- 进入Guardian服务“概览”页面,选择“更多 > 重启服务”。
- 在FusionInsight Manager界面,选择“集群 > 服务 > Guardian > 配置 > 全部配置”,搜索并修改以下参数后,单击“保存”。
- 配置Hive对接OBS文件系统。
- 在FusionInsight Manager界面,选择“集群 > 服务 > Hive > 配置 > 全部配置”。
- 在左侧的导航列表中选择“HiveServer > 自定义”。在自定义配置项中添加如下参数。
表2 HiveServer自定义参数配置说明 参数
示例
描述
hive.server.customized.configs
- 名称:hive.metastore.warehouse.dir
- 值:obs://lakeformation-test/hive
- 添加参数“hive.metastore.warehouse.dir”。
- 设置值为配置LakeFormation实例章节获取的hive Catalog在OBS中的存储路径。
hive.metastore.customized.configs
- 名称:hive.metastore.warehouse.dir
- 值:obs://lakeformation-test/hive
- 添加参数“hive.metastore.warehouse.dir”。
- 设置值为配置LakeFormation实例章节获取的hive Catalog在OBS中的存储路径。
- 单击“保存”,保存配置。
- 配置Spark对接OBS文件系统。如果集群不存在Spark组件请跳过该步骤。
- 在FusionInsight Manager界面,选择“集群 > 服务 > Spark > 配置 > 全部配置”。
- 在左侧的导航列表中选择“JDBCServer > 自定义”,参考下表增加自定义参数及值。
表3 Spark参数配置 自定义参数
参数值
spark.hive-site.customized.configs
- 参数:hive.metastore.warehouse.dir
- 值:设置为配置LakeFormation实例章节获取的hive Catalog在OBS中的存储路径,例如“obs://lakeformation-test/hive”。
- 在左侧的导航列表中选择“SparkResource > 自定义”,参考表3配置参数。
- 单击“保存”,保存配置。
- 在MRS集群“组件管理”页签,查看是否存在“配置超期”的组件,如果存在请单击“操作”列的“重启”,重启相关组件。
- 重新下载并安装MRS集群完整客户端。具体操作请参考安装客户端。
- 确认当前集群客户端场景。
- 如果当前为集群外客户端,在LakeFormation实例上添加OBS的角色授权,并在MRS Ranger上绑定Manager用户到LakeFormation角色上。
- 登录Manager界面,创建人机用户(例如用户名为“user1”),该用户具有待操作组件的相关权限。
创建用户具体操作,请参考创建MRS集群用户。
- 在LakeFormation实例上添加OBS的角色授权。
- 登录华为云管理控制台,在左上角单击“
”,选择“大数据 > 湖仓构建 LakeFormation”进入LakeFormation控制台。 - 选择“数据权限 > 角色”,单击“创建角色”,创建一个角色,例如角色名称为“testrole”,单击“确定”。
- 选择“数据权限 > 数据授权”,单击“授权”,参考如下配置,将数据表的OBS路径的读写权限赋予“testrole”,单击“确定”。
- 主体类型:选择“角色”。
- 选择角色:下拉框选择刚创建的角色,例如“testrole”。
- 授权类型:选择“路径”。
- 路径:选择为数据表的存储路径。
- 操作类型:勾选“READ”、“WRITE”。
- 登录华为云管理控制台,在左上角单击“
- 在MRS Ranger上绑定Manager用户到LakeFormation角色上。
- 在集群外客户端上登录组件客户端时指定Manager用户(例如用户名为“user1”)的命令参考如下:
- 登录Manager界面,创建人机用户(例如用户名为“user1”),该用户具有待操作组件的相关权限。
- 如果需要在管理控制台执行作业提交操作,需要更新集群内置客户端配置文件。
在MRS集群概览页面,获取弹性IP,使用该IP登录Master节点,执行如下命令刷新集群内置客户端。
su - omm
sh /opt/executor/bin/refresh-client-config.sh
- 登录客户端安装节点,通过Hive客户端查看数据库,确认对接成功。
source 客户端安装路径/bigdata_env
beeline
show databases;desc database default;
!q
- 通过Spark客户端,查看数据库,确认对接成功。如果集群不存在Spark组件请跳过该步骤。
source 客户端安装路径/Spark/component_env
spark-sql
show databases;desc database default;