EMR on ECS Trino访问DLF

如何在EMR on ECS Trino环境中通过Paimon REST访问DLF Catalog。

前提条件

已创建EMR集群,组件选择Trino。EMR版本 >= 5.13.0。如有其他版本诉求,请加入钉钉群(106575000021)联系DLF研发人员。

创建DLF Catalog

详情请参见DLF 快速入门

授予角色DLF权限

  1. 授予AliyunECSInstanceForEMRRole角色RAM权限(EMR产品化集成后可以省略该步骤)。

    1. 使用阿里云账号或RAM管理员登录RAM控制台

    2. 单击身份管理 > 角色,查询AliyunECSInstanceForEMRRole角色。

    3. 单击操作列的新增授权,进入新增授权页面。

    4. 权限策略中,查询并勾选AliyunDLFFullAccess,单击确认新增授权

    image

  2. 授予AliyunECSInstanceForEMRRole角色DLF权限。

    1. 登录数据湖构建控制台

    2. Catalog列表页面,单击Catalog名称,进入Catalog详情页。

    3. 单击权限页签,单击授权

    4. 在授权页面,配置以下信息,单击确定

      • 用户/角色:选择RAM用户/RAM角色

      • 选择授权对象:在下拉列表中选择AliyunECSInstanceForEMRRole

        说明

        如果用户下拉列表中未找到AliyunECSInstanceForEMRRole,可以在用户管理页面单击同步。

      • 预置权限类型:选择Data Editor。

升级EMR集群Paimon依赖

  1. 导入Paimon依赖。

    1. 将依赖的两个JARpaimon-ali-jindo-1.2.jarpaimon-trino-422-1.0-plugin.jar上传至OSS,并设置文件读写权限为公共读。请参见简单上传

    2. 将以下脚本修改后上传至OSS。

    #!/bin/bash
    
    echo 'backup paimon-trino-ali-.*'
    sudo mkdir /tmp/upgrade-trino-dlf2.5
    sudo cp -r /opt/apps/TRINO/trino-current/plugin/paimon /tmp/upgrade-trino-dlf2.5
    echo 'clear old paimon plugin jars'
    sudo rm -rf /opt/apps/TRINO/trino-current/plugin/paimon/*
    
    echo 'download paimon-ali-trino-1.2.jar'
    cd /opt/apps/TRINO/trino-current/plugin/paimon/
    wget ${paimon-ali-jindo-xxx.jar}
    wget ${paimon-trino-422-1.0-plugin.jar}
    重要

    脚本中的占位符${paimon-ali-jindo-xxx.jar},${paimon-trino-422-1.0-plugin.jar}需替换成OSS可下载路径。例如:https://{bucket}.oss-cn-hangzhou-internal.aliyuncs.com/jars/paimon-ali-jindo-1.2.jar。

  2. 通过EMR集群引导脚本执行。详情请参见手动执行脚本

    1. EMR集群中,选择脚本操作 > 手动执行页签,单击创建并执行

    2. 在弹出的对话框中,配置以下信息,单击确定

      • 名称:自定义脚本名称。

      • 脚本位置:选择上传到OSS的升级脚本。脚本路径格式必须是oss://**/*.sh格式。

      • 执行范围:选择集群

配置Trino连接Catalog

EMR集群的集群服务中,单击Trino服务的配置,修改paimon.properties的以下配置项。如果配置项不存在,则新增该配置项。

connector.name=paimon
warehouse=dlf_test
metastore=rest
token.provider=dlf
uri=<uri>
dlf.token-loader=ecs

参数说明如下。

参数

描述

是否必填

示例

connector.name

连接器名称,固定为paimon。

paimon-1-ali-11.0

warehouse

DLF Catalog名称。

dlf_test

metastore

metastore类型,固定为rest。

rest

token.provider

Token提供方,固定为dlf。

dlf

uri

访问DLF Rest Catalog ServerURI,格式为http://[region-id]-vpc.dlf.aliyuncs.com。详见服务接入点中的Region ID。

http://cn-hangzhou-vpc.dlf.aliyuncs.com

dlf.token-loader

通过ECS实例颁发临时Token,固定为ecs。

ecs

执行完成后,需重启Trino服务使配置生效。

使用Trino读取Paimon

  1. 通过以下脚本进入到CLI。

    sh /opt/apps/TRINO/trino-current/bin/trino --server master-1-1:9090
  2. 执行以下命令,读取数据。其中users_samplesDLF Catalog中已存在的表。

    select * from paimon.default.users_samples;

    image