Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Wie verwende ich Apache Iceberg mit einem kontoübergreifenden AWS-Glue-Datenkatalog in Spark?
Ich möchte Apache Spark mit Amazon EMR oder AWS Glue verwenden, um mit Apache Iceberg aus einem AWS-Glue-Datenkatalog in einem anderen AWS-Konto zu interagieren.
Lösung
Um Spark mit Apache-Iceberg-Tabellen aus dem AWS-Glue-Datenkatalog zu verwenden, lege Parameter im AWS-Glue-Auftrag oder Amazon-EMR-Cluster fest.
Der Amazon-EMR- oder AWS-Glue-Auftrag muss über AWS Identity and Access Management (IAM)-Berechtigungen verfügen, um auf den kontoübergreifenden AWS-Glue-Datenkatalog zuzugreifen. Weitere Informationen findest du unter Methoden zur Gewährung des kontoübergreifenden Zugriffs in AWS Glue.
Du musst die Eigenschaft Catalog.Id verwenden, um die ID des Kontos anzugeben, in dem sich der AWS-Glue-Datenkatalog befindet. Weitere Informationen findest du unterEinen kontoübergreifenden API-Aufruf durchführen.
Parameter in AWS Glue festlegen
Lege für AWS-Glue-Aufträge die Auftragsparameter fest.
Beispiel für Auftragsparameter:
Key: --conf Value: spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions --conf spark.sql.catalog.dev=org.apache.iceberg.spark.SparkCatalog --conf spark.sql.catalog.dev.glue.id=CROSS_ACCOUNT_ID --conf spark.sql.catalog.dev.warehouse=s3://amzn-s3-demo-bucket/ --conf spark.sql.catalog.dev.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog --conf spark.sql.catalog.dev.io-impl=org.apache.iceberg.aws.s3.S3FileIO
Hinweis: Ersetze CROSS_ACCOUNT_ID durch deine kontoübergreifende ID, amzn-s3-demo-bucket durch deinen S3-Bucket-Standort.
Parameter in Amazon EMR festlegen
Lege für einen Amazon-EMR-Cluster, auf dem Version 6.5 oder höher ausgeführt wird, die Parameter fest, wenn du den Auftrag absendest. Oder verwende die Spark-Standardkonfiguration /etc/spark/conf/spark-defaults.conf. Weitere Informationen findest du unter Einen Iceberg-Cluster mit Spark verwenden.
Führe den folgenden Befehl spark-submit aus, um die Parameter festzulegen:
spark-submit \ --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=CROSS_ACCOUNT_ID \ --conf spark.sql.defaultCatalog=my_catalog \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
Hinweis: Ersetze CROSS_ACCOUNT_ID durch deine kontoübergreifende ID, **amzn-s3-demo-bucket/**prefix durch deinen S3-Bucket-Standort und deinen Präfix und my_catalog durch deinen Katalog.
-oder-
Verwende die folgende spark-defaults-Konfiguration:
] } "configurations": [] }, "spark.sql.catalog.dev.io-impl": "org.apache.iceberg.aws.s3.S3FileIO" "spark.sql.catalog.dev.catalog-impl": "org.apache.iceberg.aws.glue.GlueCatalog", "spark.sql.catalog.dev.warehouse": "s3://amzn-s3-demo-bucket/", "spark.sql.catalog.dev.glue.id": "CROSS_ACCOUNT_ID", "spark.sql.catalog.dev": "org.apache.iceberg.spark.SparkCatalog", "spark.sql.extensions": "org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions", "spark.jars": "/usr/share/aws/iceberg/lib/iceberg-spark3-runtime.jar", "properties": { "classification": "spark-defaults", { }, "configurations": [] }, "iceberg.enabled": "true" "properties": { "classification": "iceberg-defaults", { [
Hinweis: Ersetze CROSS_ACCOUNT_ID durch deine kontoübergreifende ID, amzn-s3-demo-bucket durch deinen S3-Bucket-Standort.
Ähnliche Informationen

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 9 Monaten
AWS OFFICIALAktualisiert vor 8 Monaten