如何在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权限。
登录数据湖构建控制台。
-
在Catalogs列表页面,单击Catalog名称,进入Catalog详情页。
-
如果要授予整个 catalog 权限,则直接单击权限。否则点击进入对应数据库或者表,再点击权限目录,进行权限授予。
-
在授权页面,配置以下信息,单击确定。
-
用户/角色:选择RAM用户/RAM角色。
-
选择授权对象:在下拉列表中选择AliyunECSInstanceForEMRRole。
说明如果用户下拉列表中未找到AliyunECSInstanceForEMRRole,可以在用户管理页面单击同步。
-
预置权限类型:可自定义选择读取权限,或者直接使用 Data Reader/Data Editor。
-
升级EMR集群Paimon依赖
-
导入Paimon依赖。
-
将依赖的两个JAR包paimon-ali-jindo-1.4.jar,paimon-trino-422-1.4-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.4.jar' cd /opt/apps/TRINO/trino-current/plugin/paimon/ wget ${paimon-ali-jindo-1.4.jar} wget ${paimon-trino-422-1.4-plugin.jar}重要脚本中的占位符${paimon-ali-jindo-1.4.jar},${paimon-trino-422-1.4-plugin.jar}需替换成OSS可下载路径。例如:https://{bucket}.oss-cn-hangzhou-internal.aliyuncs.com/jars/paimon-ali-jindo-1.4.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;trino> select * from paimon.default.users_samples; user_id | age_level | final_gender_code | clk ---------+-----------+-------------------+------- 1 | 2-25-34 | M | true 2 | 2-18-24 | F | false 3 | 2-35-44 | M | true (3 rows) Query 20250520_071520_00003_6rw87, FINISHED, 1 node Splits: 1 total, 1 done (100.00%) 1.54 [3 rows, 0B] [1 rows/s, 0B/s]