添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
可爱的香瓜  ·  cmdlet ...·  7 月前    · 
气势凌人的眼镜  ·  WPF ...·  7 月前    · 
搭配使用 Presto 和 AWS Glue Data Catalog - Amazon EMR

搭配使用 Presto 和 AWS Glue Data Catalog

藉由 Amazon EMR 發行版本 5.10.0 和更高版本,您可指定 AWS Glue Data Catalog 作為 Presto 的預設 Hive 中繼存放區。若您需要持久的中繼存放區或由不同叢集、服務、應用程式或 AWS 帳戶 帳戶共用的中繼存放區,建議使用此組態。

AWS Glue 是全受管的擷取、轉換和載入 (ETL) 服務,可讓您以輕鬆且經濟實惠的方式,將您的資料進行分類、清理、富集,以及可靠地在各種資料存放區之間移動。AWS Glue Data Catalog 對多種資料來源和資料格式提供統一的中繼資料儲存庫,它還與 Amazon EMR、Amazon RDS、Amazon Redshift、Redshift Spectrum、Athena,以及任何與 Apache Hive 中繼存放區相容的應用程式整合。AWSGlue 爬蟲程式可以自動從 Amazon S3 中的來源資料推斷結構描述,然後在 Data Catalog 中儲存關聯的中繼資料。如需有關 Data Catalog 的詳細資訊,請參閱《AWS 開發人員指南》 中的 填入 AWS Glue Data Catalog

使用 AWS Glue 需另外付費。在 Data Catalog 中儲存與存取中繼資料會產生每月費用,AWS Glue ETL 作業和爬蟲程式執行期的每小時費用按分鐘計費,而每個佈建開發端點的每小時費用也按分鐘計費。Data Catalog 可讓您免費儲存多達一百萬個物件。如果您存放超過一百萬個物件,之後每 100,000 個物件會向您收費 1 美元。Data Catalog 中的物件是資料表、分割區或資料庫。如需詳細資訊,請參閱 Glue 定價

重要

如果您在 2017 年 8 月 14 日之前使用 Amazon Athena 或 Amazon Redshift Spectrum 建立資料表,則資料庫和資料表儲存在 Athena 管理的型錄中,該型錄和 AWS Glue Data Catalog 是分開的。若要將 Amazon EMR 和這些資料表整合,您必須升級至 AWS Glue Data Catalog。如需詳細資訊,請參閱《Amazon Athena 使用者指南》 中的 升級至 AWS Glue Data Catalog

指定 AWS Glue Data Catalog 作為中繼存放區

您可以使用 AWS Management Console、AWS CLI 或 Amazon EMR API,指定 AWS Glue Data Catalog 作為中繼存放區。當使用 CLI 或 API 時,您要使用 Presto 的組態分類來指定 Data Catalog。此外,憑藉 Amazon EMR 5.16.0 或更高版本,您可以使用組態分類在不同 AWS 帳戶 中指定 Data Catalog。在使用主控台時,您可以透過 進階選項 快速選項 指定 Data Catalog。

New console
若要使用新主控台將 AWS Glue Data Catalog 作為 Hive 中繼存放區
  1. 登入 AWS Management Console,並在 https://console.aws.amazon.com/emr 開啟 Amazon EMR 主控台。

    在左側導覽窗格中的 EC2 上的 EMR 下方,選擇 叢集 ,然後選擇 建立叢集

    應用程式套件 下方,選擇 Presto

    AWS Glue Data Catalog 設定 下方,選取 用於 Presto 資料表中繼資料 核取方塊。

    選擇適用於您的叢集的任何其他選項。

    若要啟動您的叢集,請選擇 建立叢集

    Old console
    若要使用舊主控台將 AWS Glue Data Catalog 作為預設的 Presto 中繼存放區
    1. 導覽至新的 Amazon EMR 主控台,然後從側邊導覽選取 切換至舊主控台 。如需有關切換至舊主控台時預期情況的詳細資訊,請參閱 使用舊主控台

    2. 選擇 Create cluster (建立叢集) ,然後選擇 Go to advanced options (前往進階選項)

      Software Configuration (軟體組態) 下選擇 Release (版本) emr-5.10-0 (emr-5.10-0) 或更新版本,並選取 Presto (Presto)

      選取 Use for Presto table metadata (用於 Presto 表格中繼資料) ,選擇 Next (下一步) ,接著完成其他適合您應用程式的叢集設定。

      若要使用 AWS CLI 將 AWS Glue Data Catalog 作為預設的 Hive 中繼存放區

      如需了解在建立叢集時指定以下組態分類的範例,請參閱 設定應用程式

      Amazon EMR 5.16.0 版及更高版本

      • hive.metastore 屬性設定為 glue ,如以下 JSON 範例中所示。

        "Classification": "presto-connector-hive", "Properties": { "hive.metastore": "glue"

        若要在不同的 AWS 帳戶 中指定 Data Catalog,請新增 hive.metastore.glue.catalogid 屬性,如以下 JSON 範例中所示。使用 Data Catalog 的 AWS 帳戶取代 acct-id 。使用 Amazon EMR 版本 5.15.0 和更高版本時,無法在另一個 AWS 帳戶 中使用 Data Catalog。

        "Classification": "presto-connector-hive", "Properties": { "hive.metastore": "glue", "hive.metastore.glue.catalogid": " acct-id "

        Amazon EMR 5.10.0 到 5.15.0

        hive.metastore.glue.datacatalog.enabled 屬性設定為 true ,如以下 JSON 範例中所示:

        "Classification": "presto-connector-hive", "Properties": { "hive.metastore.glue.datacatalog.enabled": "true"

        使用 PrestoSQL (Trino) 的 Amazon EMR 6.1.0 及更高版本

        從 EMR 版本 6.1.0 開始,PrestoSQL 也支援 Glue 作為預設的 Hive 中繼存放區。使用 prestosql-connector-hive 組態分類並且將 hive.metastore 屬性設定為 glue ,如以下 JSON 範例所示。

        Amazon EMR 版本 6.4.0 及更高版本使用新名稱 Trino,而非 PrestoSQL。如果您使用 Trino,請使用 trino-connector-hive 取代以下組態分類中的 prestosql-connector-hive

        "Classification": " prestosql-connector-hive ", "Properties": { "hive.metastore": "glue"

        若要在長期執行的叢集上切換中繼存放區,您可以透過手動方式,首先連線到主節點,接著在 /etc/presto/conf/catalog/hive.properties 檔案中直接編輯屬性值,然後重新啟動 Presto 伺服器 ( sudo restart presto-server ),再來就是為您的發行版本設定適合的值。如果是在 Amazon EMR 5.15.0 和更早版本使用此方法,請確定 hive.table-statistics-enabled 已設為 false 。當使用發行版本為 5.16.0 及更新版本時,這個設定不是必要設定;但無論使用哪種版本,都不支援表格和分割區統計資訊。

        IAM 許可

        叢集的 EC2 執行個體設定檔必須有 AWS Glue 動作的 IAM 許可。此外,如果您針對 AWS Glue Data Catalog 物件啟用加密,則角色也必須允許加密、解密和產生用於加密的 AWS KMS key。

        AWS Glue 動作的許可

        如果您將預設的 EC2 執行個體設定檔用於 Amazon EMR,就不需要採取任何動作。附接至 EMR_EC2_DefaultRole AmazonElasticMapReduceforEC2Role 受管政策允許所有必要的 AWS Glue 動作。不過,如果您指定自訂 EC2 執行個體設定檔和許可,則必須設定適當的 AWS Glue 動作。使用 AmazonElasticMapReduceforEC2Role 受管政策做為起點。如需詳細資訊,請參閱《Amazon EMR 管理指南》 中的 叢集 EC2 執行個體的服務角色 (EC2 執行個體設定檔)

        加密和解密 AWS Glue Data Catalog 的許可

        您的執行個體設定檔需要許可,以便使用您的金鑰來加密和解密資料。如若下列兩個陳述式均適用,則您 需要設定這些許可:

        您使用 AWS Glue 的受管金鑰對 AWS Glue Data Catalog 啟用加密。

        您使用和 AWS Glue Data Catalog 位在同一 AWS 帳戶 的叢集。

        否則,您必須新增以下陳述式至附接至您的 EC2 執行個體設定檔的許可政策。

        "Version": "2012-10-17", "Statement": [ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" "Resource": "arn:aws:kms: region : acct-id :key/ 12345678-1234-1234-1234-123456789012 "

        如需有關 AWS Glue Data Catalog 加密的詳細資訊,請參閱《AWS 開發人員指南》 中的 加密您的資料型錄

        資源型許可

        如果您在 Amazon EMR 中將 AWS Glue 與 Hive、Spark 或 Presto 結合使用,則 AWS Glue 支援資源型政策來控制對 Data Catalog 資源的存取。這些資源包含資料庫、資料表、連線和使用者定義的函數。如需詳細資訊,請參閱《AWS Glue 開發人員指南》 中的 AWS Glue 資源政策

        使用資源型政策限制從 Amazon EMR 內存取 AWS Glue 時,您在許可政策中指定的主體必須是與建立叢集時指定的 EC2 執行個體設定檔關聯的角色 ARN。例如,對於附接至型錄的資源型政策,您可以使用下列範例所示的格式,將叢集 EC2 執行個體的預設服務角色的角色 ARN ( EMR_EC2_DefaultRole ) 指定為 Principal

        arn:aws:iam::acct-id:role/EMR_EC2_DefaultRole

        acct-id 可以與 AWS Glue 帳戶 ID 不同。這可讓您從不同帳戶中的 EMR 叢集進行存取。您可以指定多個主體,每個主體都來自不同的帳戶。

        使用 AWS Glue Data Catalog 時的考量

        使用 AWS Glue Data Catalog 作為連接 Presto 的中繼存放區時,請考慮以下項目: