如何在EMR on ECS Trino环境中通过Paimon REST访问DLF Catalog。
前提条件
已创建EMR集群,组件选择Trino。EMR版本 >= 5.13.0。如有其他版本诉求,请加入钉钉群(106575000021)联系DLF研发人员。
创建DLF Catalog
详情请参见DLF 快速入门。
授予角色DLF权限
授予AliyunECSInstanceForEMRRole角色RAM权限(EMR产品化集成后可以省略该步骤)。
使用阿里云账号或RAM管理员登录RAM控制台。
单击
,查询AliyunECSInstanceForEMRRole角色。单击操作列的新增授权,进入新增授权页面。
在权限策略中,查询并勾选AliyunDLFFullAccess,单击确认新增授权。
授予AliyunECSInstanceForEMRRole角色DLF权限。
登录数据湖构建控制台。
在Catalog列表页面,单击Catalog名称,进入Catalog详情页。
单击权限页签,单击授权。
在授权页面,配置以下信息,单击确定。
用户/角色:选择RAM用户/RAM角色。
选择授权对象:在下拉列表中选择AliyunECSInstanceForEMRRole。
说明如果用户下拉列表中未找到AliyunECSInstanceForEMRRole,可以在用户管理页面单击同步。
预置权限类型:选择Data Editor。
升级EMR集群Paimon依赖
导入Paimon依赖。
将依赖的两个JAR包paimon-ali-jindo-1.2.jar,paimon-trino-422-1.0-plugin.jar上传至OSS,并设置文件读写权限为公共读。请参见简单上传。
将以下脚本修改后上传至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。
通过EMR集群引导脚本执行。详情请参见手动执行脚本。
在EMR集群中,选择
页签,单击创建并执行。在弹出的对话框中,配置以下信息,单击确定。
名称:自定义脚本名称。
脚本位置:选择上传到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 Server的URI,格式为 | 是 | http://cn-hangzhou-vpc.dlf.aliyuncs.com |
dlf.token-loader | 通过ECS实例颁发临时Token,固定为ecs。 | 是 | ecs |
执行完成后,需重启Trino服务使配置生效。
使用Trino读取Paimon表
通过以下脚本进入到CLI。
sh /opt/apps/TRINO/trino-current/bin/trino --server master-1-1:9090
执行以下命令,读取数据。其中
users_samples
为DLF Catalog中已存在的表。select * from paimon.default.users_samples;