Accesso alle tabelle Amazon S3 con Amazon EMR - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Accesso alle tabelle Amazon S3 con Amazon EMR

Amazon EMR (precedentemente chiamato Amazon Elastic MapReduce) è una piattaforma di cluster gestita che semplifica l'esecuzione di framework di big data, come «and on»Apache Spark, AWS per elaborare Apache Hadoop e analizzare grandi quantità di dati. Utilizzando questi framework e i relativi progetti open source, è possibile elaborare i dati per scopi di analisi e carichi di lavoro di business intelligence. Amazon EMR consente inoltre di trasformare e spostare grandi quantità di dati da e verso altri archivi di AWS dati e database.

È possibile usare i cluster Apache Iceberg in Amazon EMR con le tabelle S3 connettendosi ai bucket di tabelle in una sessione di Spark. Per connetterti ai table bucket in Amazon EMR, puoi utilizzare AWS l'integrazione dei servizi di analisi AWS Glue Data Catalog tramite o utilizzare il catalogo open source Amazon S3 Tables Catalog per il catalogo clienti. Apache Iceberg

Nota

Tabelle S3 è supportato su Amazon EMR versione 7.5 o successiva.

Connessione ai bucket di tabelle S3 con Spark sul cluster Amazon EMR Iceberg

In questa procedura, è possibile impostare un cluster Amazon EMR configurato per Apache Iceberg e avviare una sessione di Spark che si connette ai bucket di tabelle. Puoi configurarlo utilizzando l'integrazione dei servizi di AWS analisi oppure puoi utilizzare il catalogo open source Amazon S3 Tables Catalog per il catalogo Apache Iceberg dei clienti. AWS Glue Per ulteriori informazioni sul catalogo del client, consulta Accesso alle tabelle utilizzando l’endpoint Iceberg REST di Tabelle Amazon S3.

Scegli il metodo di utilizzo delle tabelle con Amazon EMR tra le seguenti opzioni.

Amazon S3 Tables Catalog for Apache Iceberg

I seguenti prerequisiti sono necessari per eseguire query sulle tabelle con Spark su Amazon EMR utilizzando il Catalogo di Tabelle Amazon S3 per Apache Iceberg.

Per la versione più recente del catalogo client JAR, consulta il repository GitHub s3-tables-catalog.

Prerequisiti
  • Associare la policy AmazonS3TablesFullAccess al ruolo IAM utilizzato per Amazon EMR.

Per configurare un cluster Amazon EMR con cui eseguire query sulle tabelle con Spark
  1. Crea un cluster con la seguente configurazione. Per utilizzare questo esempio, sostituisci user input placeholders con le informazioni appropriate.

    aws emr create-cluster --release-label emr-7.5.0 \ --applications Name=Spark \ --configurations file://configurations.json \ --region us-east-1 \ --name My_Spark_Iceberg_Cluster \ --log-uri s3://amzn-s3-demo-bucket/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-role EMR_DefaultRole \ --ec2-attributes \ InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0,KeyName=my-key-pair

    configurations.json:

    [{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]
  2. Connettersi al nodo principale di Spark tramite SSH.

  3. Per inizializzare una sessione di Spark per Iceberg che si connette al proprio bucket di tabelle, inserire il seguente comando. Sostituisci user input placeholders con l’ARN del bucket di tabelle.

    spark-shell \ --packages software.amazon.s3tables:s3-tables-catalog-for-iceberg-runtime:0.1.8 \ --conf spark.sql.catalog.s3tablesbucket=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3tablesbucket.catalog-impl=software.amazon.s3tables.iceberg.S3TablesCatalog \ --conf spark.sql.catalog.s3tablesbucket.warehouse=arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1 \ --conf spark.sql.defaultCatalog=s3tablesbucket \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
  4. Eseguire query sulle tabelle con Spark SQL. Per query di esempio, consulta Esecuzione di query su Tabelle S3 con Spark SQL.

AWS analytics services integration

I seguenti prerequisiti sono necessari per eseguire query sulle tabelle Spark su Amazon EMR utilizzando AWS l'integrazione dei servizi di analisi.

Prerequisiti
Per configurare un cluster Amazon EMR con cui eseguire query sulle tabelle con Spark
  1. Crea un cluster con la seguente configurazione. Per utilizzare questo esempio, sostituisci i valori user input placeholder con le informazioni appropriate.

    aws emr create-cluster --release-label emr-7.5.0 \ --applications Name=Spark \ --configurations file://configurations.json \ --region us-east-1 \ --name My_Spark_Iceberg_Cluster \ --log-uri s3://amzn-s3-demo-bucket/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-role EMR_DefaultRole \ --ec2-attributes \ InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0,KeyName=my-key-pair

    configurations.json:

    [{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]
  2. Connettersi al nodo principale di Spark tramite SSH.

  3. Inserire il seguente comando per inizializzare una sessione di Spark per Iceberg che si connette alle proprie tabelle. Sostituisci user input placeholders per la Regione, l’ID dell’account e il nome del bucket di tabelle con le informazioni appropriate.

    spark-shell \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \ --conf spark.sql.defaultCatalog=s3tables \ --conf spark.sql.catalog.s3tables=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3tables.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog \ --conf spark.sql.catalog.s3tables.client.region=us-east-1 \ --conf spark.sql.catalog.s3tables.glue.id=111122223333:s3tablescatalog/amzn-s3-demo-table-bucket
  4. Eseguire query sulle tabelle con Spark SQL. Per query di esempio, consulta Esecuzione di query su Tabelle S3 con Spark SQL.

Nota

Se si utilizza il comando DROP TABLE PURGE con Amazon EMR:

  • Amazon EMR versione 7.5

    Imposta la configurazione di Spark su spark.sql.catalog.your-catalog-name.cache-enabled per false. Se questa configurazione è impostata su true, eseguire il comando in una nuova sessione o applicazione in modo che la cache della tabella non venga attivata.

  • Versioni di Amazon EMR successive alla 7.5

    DROP TABLE non è supportato. È possibile utilizzare la REST API DeleteTable di Tabelle S3 per eliminare una tabella.