Wie kann ich Apache Iceberg mit einem kontoübergreifenden AWS Glue-Datenkatalog in Spark verwenden?
Ich möchte Spark mit Amazon EMR oder AWS Glue verwenden, um über einen kontoübergreifenden AWS Glue-Datenkatalog mit Apache Iceberg zu interagieren.
Behebung
Legen Sie die folgenden Parameter fest, um Spark für die Interaktion mit Apache Iceberg-Tabellen aus dem AWS Glue Data Catalog zu verwenden:
--conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \ --conf spark.sql.catalog.glue_catalog=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.dev.glue.id=<CROSS_ACCOUNT_ID> \ --conf spark.sql.catalog.glue_catalog.warehouse=s3://<your-warehouse-dir>/ \ --conf spark.sql.catalog.glue_catalog.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog \ --conf spark.sql.catalog.glue_catalog.io-impl=org.apache.iceberg.aws.s3.S3FileIO
Sie können diese Parameter auf verschiedene Arten festlegen, je nachdem, ob Sie einen AWS Glue-Job oder einen Amazon EMR-Cluster verwenden.
Verwenden Sie für AWS Glue-Jobsjob parameters. Zum Beispiel:
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://<WAREHOUSE_DIR>/ --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
Für einen Amazon EMR-Cluster, auf dem Version 6.5 oder höher ausgeführt wird, legen Sie die Parameter fest, wenn Sie den Job abschicken. Oder verwenden Sie die Spark-Standardkonfiguration (/etc/spark/conf/spark-defaults.conf). Weitere Informationen finden Sie unter Verwenden eines Iceberg-Clusters mit Spark.
**Hinweis:**In kontoübergreifenden Szenarien müssen Sie immer die Eigenschaft glue.idverwenden, um die entsprechende AWS Glue-Datenkatalog-ID (AWS-Konto-ID) anzugeben.
Wenn Sie Amazon EMR Version 6.5 oder höher verwenden, verwenden Sie 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://<WAREHOUSE_DIR>/", "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: Der Amazon EMR- oder AWS Glue-Job muss über ausreichende AWS Identity and Access Management (IAM) -Berechtigungen verfügen, um auf den kontoübergreifenden AWS Glue-Datenkatalog zuzugreifen. Weitere Informationen finden Sie unter Einen kontoübergreifenden API-Aufruf durchführen.
Weitere Informationen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 3 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr