Trino 外掛程式 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Trino 外掛程式

Trino (先前的 PrestoSQL) 是一種SQL查詢引擎,可用來對資料來源 (例如物件儲存HDFS、關聯式資料庫和無SQL資料庫) 執行查詢。它消除了將數據遷移到中央位置的需要,並允許您從任何位置查詢數據。Amazon EMR 提供了一個 Apache 遊俠插件,為 Trino 提供精細的訪問控制。此外掛程式與開放原始碼 Apache Ranger Admin 伺服器 2.0 版及更新版本相容。

支援的功能

Amazon 上 Trino 的 Apache Ranger 外掛程式EMR支援 Trino 查詢引擎的所有功能,這些功能受到精細的存取控制保護。這包括資料庫、資料表、資料欄層級存取控制,以及資料列篩選和資料遮罩。Apache Ranger 政策可以包括對使用者和群組的授權政策和拒絕政策。稽核事件也會提交至 CloudWatch記錄檔。

安裝服務組態

安裝 Trino 服務定義需要設定 Ranger Admin 伺服器。若要設定 Ranger Admin 伺服器,請參閱 設定 Ranger Admin 伺服器

請遵循下列步驟安裝 Trino 服務定義。

  1. SSH進入阿帕奇遊俠管理服務器。

    ssh ec2-user@ip-xxx-xxx-xxx-xxx.ec2.internal

  2. 解除安裝 Presto 伺服器外掛程式 (如果存在)。執行下列命令。如果出現「找不到服務」錯誤,則表示您的伺服器上未安裝 Presto 伺服器外掛程式。繼續下一個步驟。

    curl -f -u *<admin users login>*:*_<_**_password_ **_for_** _ranger admin user_**_>_* -X DELETE -k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef/name/presto'
  3. 下載服務定義和 Apache Ranger Admin 伺服器外掛程式。在暫時目錄中,下載服務定義。Ranger 2.x 版支援此服務定義。

    wget https://s3.amazonaws.com/elasticmapreduce/ranger/service-definitions/version-2.0/ranger-servicedef-amazon-emr-trino.json
  4. 註冊 Amazon EMR 的 Apache 天合服務定義。

    curl -u *<admin users login>*:*_<_**_password_ **_for_** _ranger admin user_**_>_* -X POST -d @ranger-servicedef-amazon-emr-trino.json \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -k 'https://*<RANGER SERVER ADDRESS>*:6182/service/public/v2/api/servicedef'

    如果此命令成功執行,您會在 Ranger Admin UI 中看到一個稱為 TRINO 的新服務,如下列影像所示。

    Ranger Admin 會建立服務。
  5. 建立 TRINO 應用程式的執行個體,輸入下列資訊。

    服務名稱:您將使用的服務名稱。建議的值為 amazonemrtrino。請注意此服務名稱,因為建立 Amazon EMR 安全組態時將需要這個名稱。

    顯示名稱:要為此執行個體顯示的名稱。建議的值為 amazonemrtrino

    Ranger Admin 顯示名稱。

    jdbc. 驅動程序。 ClassName:Trino 連接的JDBC類別名稱。您可以使用預設值。

    jdbc.url:連接到天合協調器時使用的JDBC連接字符串。

    憑證的通用名稱:憑證內的 CN 欄位用於從用戶端外掛程式連接至管理伺服器。此值必須與TLS憑證中為外掛程式建立的 CN 欄位相符。

    Ranger Admin 通用名稱。

    請注意,此外掛程式的TLS憑證應該已經在 Ranger Admin 伺服器上的信任存放區中註冊。如需詳細資訊,請參閱TLS憑證

建立 Trino 政策

在您建立新政策時,填寫下列欄位。

政策名稱:此政策的名稱。

政策標籤:您可以放在此政策上的標籤。

型錄:此政策套用的型錄。萬用字元 "*" 代表所有型錄。

結構描述:此政策套用的結構描述。萬用字元 "*" 代表所有結構描述。

資料表:此政策套用的資料表。萬用字元 "*" 代表所有資料表。

資料欄:此政策套用的資料欄。萬用字元 "*" 代表所有資料欄。

描述:此政策的描述。

Trino User(用於使用者模擬存取)、Trino System /S ession 屬性(用於更改引擎系統或工作階段屬性)、函數/程序(用於允許函數或程序呼叫),以及(用於授予對資料位置引擎的讀取/寫入存取權)的URL其他類型的策略。

Ranger Admin 會建立政策詳細資訊。

若要為特定使用者和群組授予許可,請輸入使用者和群組。您也可以為允許條件和拒絕條件指定排除。

Ranger Admin 政策詳細資訊允許拒絕條件。

在指定允許和拒絕條件之後,選擇儲存

考量事項

在 Apache Ranger 內建立 Trino 政策時,需要注意一些使用考量。

Hive 中繼資料伺服器

Hive 中繼資料伺服器只能由可信引擎 (特別是 Trino 引擎) 存取,以防止未經授權的存取。Hive 中繼資料伺服器也可由叢集上的所有節點存取。所需的連接埠 9083 可讓所有節點存取主節點。

身分驗證

預設情況下,Trino 設定為使用 Kerberos 進行身份驗證,如 Amazon EMR 安全組態中的設定。

需要傳輸中加密

Trino 外掛程式要求您在 Amazon EMR 安全組態中啟用傳輸中加密功能。若要啟用加密,請參閱 傳輸中加密

限制

以下是 Trino 外掛程式的目前限制:

  • Ranger Admin 伺服器不支援自動完成。