如何在EMR on ECS Trino環境中通過Paimon REST訪問DLF Catalog。
前提條件
已建立EMR叢集,組件選擇Trino。EMR版本 >= 5.13.0。如有其他版本訴求,請加入DingTalk群(106575000021)聯絡DLF研發人員。
建立DLF Catalog
詳情請參見 DLF 快速入門 。
授予角色DLF許可權
-
授予AliyunECSInstanceForEMRRole角色RAM許可權(EMR產品化整合後可以省略該步驟)。
-
使用阿里雲帳號或Resource Access Management員登入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]