更新时间:2025-12-11 GMT+08:00
分享

为已有集群配置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

  1. 登录MRS控制台,选择“现有集群”。
  2. 单击待对接的MRS名称进入集群“概览”页签。
  3. 单击“委托”后的“选择委托”,选择创建对接ECS/BMS云服务委托创建的委托名称。

    如果当前MRS集群已绑定委托,请根据实际情况确认原委托的权限策略是否需要保留,如果需要保留请将其添加到创建对接ECS/BMS云服务委托创建的委托上,然后将该委托绑定到MRS集群上(修改后委托权限生效有一定延后性)。

  4. 单击“数据连接”右侧的“单击管理”,进入数据连接配置界面。
  5. 单击“配置LakeFormation数据连接”,在下拉框中选择创建LakeFormation数据连接记录的LakeFormation数据连接ID,单击“确定”。(如果已存在Hive的本地数据库数据连接,不需要解绑)

    配置LakeFormation数据连接的功能,需要联系技术支持申请开通白名单。

    图1 配置LakeFormation数据连接

  6. 登录MRS集群的FusionInsight Manager页面,具体操作请参考访问FusionInsight Manager(MRS 3.x及之后版本)
  7. 配置Guardian。

    1. 在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

    2. 进入Guardian服务“概览”页面,选择“更多 > 重启服务”。

  8. 配置Hive对接OBS文件系统。

    1. 在FusionInsight Manager界面,选择“集群 > 服务 > Hive > 配置 > 全部配置”。
    2. 在左侧的导航列表中选择“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中的存储路径。
    3. 单击“保存”,保存配置。

  9. 配置Spark对接OBS文件系统。如果集群不存在Spark组件请跳过该步骤。

    1. 在FusionInsight Manager界面,选择“集群 > 服务 > Spark > 配置 > 全部配置”。
    2. 在左侧的导航列表中选择“JDBCServer > 自定义”,参考下表增加自定义参数及值。
      表3 Spark参数配置

      自定义参数

      参数值

      spark.hive-site.customized.configs

      • 参数:hive.metastore.warehouse.dir
      • 值:设置为配置LakeFormation实例章节获取的hive Catalog在OBS中的存储路径,例如“obs://lakeformation-test/hive”。
    3. 在左侧的导航列表中选择“SparkResource > 自定义”,参考表3配置参数。
    4. 单击“保存”,保存配置。

  10. 在MRS集群“组件管理”页签,查看是否存在“配置超期”的组件,如果存在请单击“操作”列的“重启”,重启相关组件。
  11. 重新下载并安装MRS集群完整客户端。具体操作请参考安装客户端
  12. 确认当前集群客户端场景。

    • 如果当前为集群内客户端,需要使用omm用户操作,omm用户默认具有OBS读写权限,不需要额外授权。执行步骤 14
    • 如果当前为集群外客户端,则只能使用Manager用户操作,请执行步骤 13进行授权。

  13. 如果当前为集群外客户端,在LakeFormation实例上添加OBS的角色授权,并在MRS Ranger上绑定Manager用户到LakeFormation角色上。

    1. 登录Manager界面,创建人机用户(例如用户名为“user1”),该用户具有待操作组件的相关权限。

      创建用户具体操作,请参考创建MRS集群用户

    2. 在LakeFormation实例上添加OBS的角色授权。
      1. 登录华为云管理控制台,在左上角单击“”,选择“大数据 > 湖仓构建 LakeFormation”进入LakeFormation控制台。
      2. 选择“数据权限 > 角色”,单击“创建角色”,创建一个角色,例如角色名称为“testrole”,单击“确定”。
      3. 选择“数据权限 > 数据授权”,单击“授权”,参考如下配置,将数据表的OBS路径的读写权限赋予“testrole”,单击“确定”。
        • 主体类型:选择“角色”。
        • 选择角色:下拉框选择刚创建的角色,例如“testrole”。
        • 授权类型:选择“路径”。
        • 路径:选择为数据表的存储路径。
        • 操作类型:勾选“READ”、“WRITE”。
    3. 在MRS Ranger上绑定Manager用户到LakeFormation角色上。
      1. 使用admin用户登录MRS集群的Manager页面,选择“集群 > 服务 > Ranger”。
      2. 在Ranger服务概览,单击“RangerAdmin”进入Ranger Web UI界面。
      3. 单击菜单栏“Settings”,选择“Roles”页签,查看添加的角色(例如“testrole”)是否已同步。
      4. 在Ranger页面为用户绑定角色。

        单击角色名称“testrole”,在“Users”下“Select User”输入框中填入已创建的Manager用户(例如用户名为“user1”),单击“Add Users”,然后单击“Save”保存退出。

    4. 在集群外客户端上登录组件客户端时指定Manager用户(例如用户名为“user1”)的命令参考如下:
      • Hive:

        hive beeline -n user1

      • Spark:

        spark-beeline -n user1

        执行spark-sql、spark-submit命令时,执行以下命令:

        export HADOOP_USER_NAME=user1

      • HetuEngine:

        hetu-cli --user user1

      • Flink:

        Flink客户端不支持指定Manager用户,只能使用omm系统用户。

        FlinkServer创建Hive表owner默认是委托用户,不是Manager用户;正常使用Manager用户登录UI即可。

  14. 如果需要在管理控制台执行作业提交操作,需要更新集群内置客户端配置文件。

    在MRS集群概览页面,获取弹性IP,使用该IP登录Master节点,执行如下命令刷新集群内置客户端。

    su - omm

    sh /opt/executor/bin/refresh-client-config.sh

  15. 登录客户端安装节点,通过Hive客户端查看数据库,确认对接成功。

    source 客户端安装路径/bigdata_env

    beeline

    show databases;desc database default;

    !q

  16. 通过Spark客户端,查看数据库,确认对接成功。如果集群不存在Spark组件请跳过该步骤。

    source 客户端安装路径/Spark/component_env

    spark-sql

    show databases;desc database default;

相关文档