選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

在 Glue Data Catalog AWS 中使用 Amazon EMR 上的 Spark 的多目錄階層 - Amazon EMR

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

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

在 Glue Data Catalog AWS 中使用 Amazon EMR 上的 Spark 的多目錄階層

您可以註冊 Amazon EMR 叢集以存取 AWS Glue Data Catalog,讓各種消費者都能存取資料表和其他目錄資源。 AWS Glue Data Catalog 支援多目錄階層,可在 Amazon S3 資料湖中統一您的資料。它還提供 Hive 中繼存放區 API 和開放原始碼 Apache Iceberg REST API 來存取資料。這些功能可供 Amazon EMR 和其他 服務使用,例如 Amazon Athena 和 Amazon Redshift。

目錄資源的整理方式

當您在 AWS Glue Data Catalog 中建立資源時,您可以從支援 Apache Iceberg REST API 或 Hive 中繼存放區的任何 SQL 引擎存取資源。 AWS Lake Formation 會管理許可。

在 AWS Glue Data Catalog 中,資料會組織在目錄、資料庫和資料表的邏輯階層中:

  • 目錄 – 從資料存放區存放物件的邏輯容器,例如結構描述或資料表。

  • 存放 Redshift 受管儲存 (RMS) 資料表的目錄 – 當您管理目錄存放 RMS 資料表時,您可以使用 Iceberg 存取這些資料表。

  • 資料庫 – 整理目錄中的資料表和檢視等資料物件。

  • 資料表和檢視 – 資料庫中的資料物件,提供具有可理解結構描述的抽象層。它們提供 layer 來存取基礎資料,這些資料可以是各種格式和不同位置。

設定資料目錄以搭配 Amazon EMR 使用

若要開始使用,請將目錄設定為支援 Amazon EMR 工具。Glue Data Catalog AWS 提供 Hive 中繼存放區相容性和 Iceberg REST 相容 APIs。

使用 Hive 中繼存放區設定 Amazon EMR

如需如何設定的詳細資訊,請參閱 AWS Glue 使用者指南中的 Spark 任務的 Glue Data Catalog 支援。 AWS 本主題說明如何將 AWS Glue Data Catalog 設定為 Hive 中繼存放區,並將其做為端點使用。此外,還有 Amazon EMR 文件,說明如何在使用 AWS Glue Data Catalog 作為 Spark 的 Apache Hive 中繼存放區中,將 AWS Glue Data Catalog 指定為 Spark 中繼存放區

存取 Glue Data Catalog AWS 中資源的許可

本節說明搭配目錄資料使用 Amazon EMR 工具的 IAM 政策需求。向 Glue Data Catalog AWS 註冊叢集後,您需要下列許可,才能探索後續建立的資料目錄的建立和變更:

  • glue:GetCatalog

  • glue:GetCatalogs

  • sts:AssumeRole

  • sts:TagSession

  • sts:SetContext

  • sts:SetSourceIdentity

在大多數情況下,當您指派許可時,建議您建立 IAM 角色並為其指派許可。

此外,若要查詢目錄資料,您必須使用 設定資料目錄的許可 AWS Lake Formation。如需在 中設定資料目錄許可的詳細資訊 AWS Lake Formation,請參閱授予和撤銷 Data Catalog 資源的許可

在您建立和設定叢集,並設定目錄物件的許可之後,您可以提交任務來查詢和處理資料。

設定 Spark 以存取 Glue Data Catalog AWS 中的多目錄階層

透過 EMR 7.5,您可以將 Spark 設定為使用 AWS Glue 的多目錄階層。多目錄階層可讓您:

  • 將現有 Amazon Redshift 資料倉儲中的資料表、檢視和具體化檢視等 Redshift 受管儲存 (RMS) 資料帶至 AWS Glue Data Catalog。您可以使用 EC2 上的 EMR 和 EMR Serverless 來查詢這些物件。

  • 建立 RMS 目錄、 AWS Glue Data Catalog,並使用 ZeroETL 將資料儲存在 RMS 中,並使用 Iceberg 相容查詢引擎查詢資料。

  • 在 AWS Glue Data Catalog 中建立受管 Iceberg 資料表,其中包含包含壓縮、快照和保留的完整功能儲存管理。

初始化 Spark 工作階段時連線至多目錄

下列範例示範如何使用互動式 Spark shell、Spark 提交或 Amazon EMR Notebooks AWS 來使用 Glue 的多目錄階層。

spark-shell
  1. 使用 SSH 連接至主節點。如需詳細資訊,請參閱《Amazon EMR 管理指南》中的使用 SSH 連接至主節點

  2. 輸入以下命令啟動 Spark shell。若要使用 PySpark Shell,請將 spark-shell 取代為 pyspark

    spark-shell \ --conf spark.sql.catalog.my_catalog=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.my_catalog.warehouse=s3://amzn-s3-demo-bucket/prefix/ --conf spark.sql.catalog.my_catalog.type=glue \ --conf spark.sql.catalog.my_catalog.glue.id=Glue RMS catalog ID \ --conf spark.sql.defaultCatalog=my_catalog \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
spark-submit
  1. 使用 SSH 連接至主節點。如需詳細資訊,請參閱《Amazon EMR 管理指南》中的使用 SSH 連接至主節點

  2. 輸入下列命令以啟動 Spark 的 Spark 工作階段。

    spark-submit \ --conf spark.sql.catalog.my_catalog=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.my_catalog.warehouse=s3://amzn-s3-demo-bucket1/prefix \ --conf spark.sql.catalog.my_catalog.type=glue \ --conf spark.sql.catalog.my_catalog.glue.id=Glue RMS catalog ID \ --conf spark.sql.defaultCatalog=my_catalog \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
EMR Studio notebooks

若要使用 EMR Studio 筆記本初始化 Spark 工作階段,請使用 Amazon EMR Notebooks 中的 %%configure 魔法命令來設定 Spark 工作階段,如下列範例所示。如需詳細資訊,請參閱《Amazon EMR 管理指南》中的使用 EMR Notebooks 魔法

%%configure -f{ "conf":{ "spark.sql.catalog.my_catalog":"org.apache.iceberg.spark.SparkCatalog", "spark.sql.catalog.my_catalog.type":"glue", "spark.sql.catalog.my_catalog.glue.id":"Glue RMS catalog ID", "spark.sql.catalog.my_catalog.warehouse":"s3://amzn-s3-demo-bucket1/prefix/", "spark.sql.defaultCatalog", "my_catalog", "spark.sql.extensions":"org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions" } }
CLI

若要使用 CLI 初始化 Spark 工作階段,請執行下列範例。如需使用 AWS CLI 和 Amazon EMR API 指定組態分類的詳細資訊,請參閱設定應用程式

[ { "Classification": "spark-defaults", "Properties": { "spark.sql.catalog.my_catalog":"org.apache.iceberg.spark.SparkCatalog", "spark.sql.catalog.my_catalog.type":"glue", "spark.sql.catalog.my_catalog.glue.id":"Glue RMS catalog ID", "spark.sql.catalog.my_catalog.warehouse":"s3://amzn-s3-demo-bucket1/prefix/", "spark.sql.defaultCatalog", "my_catalog", "spark.sql.extensions":"org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions" } } ]
  1. 使用 SSH 連接至主節點。如需詳細資訊,請參閱《Amazon EMR 管理指南》中的使用 SSH 連接至主節點

  2. 輸入以下命令啟動 Spark shell。若要使用 PySpark Shell,請將 spark-shell 取代為 pyspark

    spark-shell \ --conf spark.sql.catalog.my_catalog=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.my_catalog.warehouse=s3://amzn-s3-demo-bucket/prefix/ --conf spark.sql.catalog.my_catalog.type=glue \ --conf spark.sql.catalog.my_catalog.glue.id=Glue RMS catalog ID \ --conf spark.sql.defaultCatalog=my_catalog \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions

使用 Glue Data Catalog 將 Spark 工作階段初始化為 Redshift AWS 受管儲存

下列範例命令會使用 Glue Data Catalog 初始化 Spark AWS 工作階段。

spark-sql \ --conf spark.sql.catalog.rms=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.rms.type=glue \ --conf spark.sql.catalog.rms.glue.id=Glue RMS catalog ID \ --conf spark.sql.defaultCatalog=rms --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions

下列範例使用 Iceberg REST API 和 Redshift 受管儲存搭配 Glue Data Catalog 初始化 Spark AWS 工作階段。

spark-sql \ --conf spark.sql.catalog.rms=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.rms.type=rest \ --conf spark.sql.catalog.rms.warehouse=glue RMS catalog ID \ --conf spark.sql.catalog.rms.uri=Glue endpoint URI/iceberg \ --conf spark.sql.catalog.rms.rest.sigv4-enabled=true \ --conf spark.sql.catalog.rms.rest.signing-name=glue \ --conf spark.sql.defaultCatalog=rms \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions

如需搭配 Spark Iceberg 使用 AWS Glue 多目錄階層的詳細資訊,請參閱搭配 Spark 使用 Iceberg 叢集

多目錄組態的考量和限制

  • 不支援搭配 Apache Hive 中繼存放區使用多目錄階層。

  • 使用 時,搭配 Apache Iceberg 使用多目錄階層,不支援回復至 Apache Hive 中繼存放區SparkSessionCatalog

  • 具有執行期角色的 EC2 叢集上的 EMR 不支援多目錄階層。

  • 使用 啟用的 EC2 叢集上的 EMR AWS Lake Formation 不支援多目錄階層。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。