¿Cómo puedo usar Apache Iceberg con un Catálogo de datos de AWS Glue para varias cuentas en Spark?
Quiero usar Spark con Amazon EMR o AWS Glue para interactuar con Apache Iceberg desde un Catálogo de datos de AWS Glue entre cuentas.
Resolución
Defina los siguientes parámetros para usar Spark para interactuar con las tablas de Apache Iceberg del Catálogo de datos de AWS Glue:
--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
Puede configurar estos parámetros de varias maneras, en función de si utiliza un trabajo de AWS Glue o un clúster de Amazon EMR.
Para los trabajos de AWS Glue, utilice los parámetros del trabajo. Por ejemplo:
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
En un clúster de Amazon EMR que ejecute la versión 6.5 o posterior, defina los parámetros al enviar el trabajo. O bien, utilice la configuración predeterminada de Spark (/etc/spark/conf/spark-defaults.conf). Para obtener más información, consulte Usar un clúster de Iceberg con Spark.
Nota: En situaciones con varias cuentas, siempre tiene que usar la propiedad glue.id para especificar el ID del Catálogo de datos de AWS Glue correspondiente (ID de cuenta de AWS).
Si utiliza la versión 6.5 o posterior de Amazon EMR, utilice la siguiente configuración de spark-defaults:
] } "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", { [
Nota: El trabajo de Amazon EMR o AWS Glue tiene que tener suficientes permisos de AWS Identity y Access Management (IAM) para acceder al Catálogo de datos de AWS Glue entre cuentas. Para obtener más información, consulte Realizar una llamada a la API entre cuentas.
Información relacionada
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 2 años