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à.
Amazon EMR (precedentemente chiamato Amazon Elastic MapReduce) è una piattaforma di cluster gestita che semplifica l'esecuzione di framework di big data, come Apache Hadoop e Apache Spark, AWS per elaborare 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 utilizzare… Apache Iceberg cluster in Amazon EMR per lavorare con le tabelle S3 collegandosi ai bucket di tabella in un Spark sessione. Per connetterti ai table bucket in Amazon EMR, puoi utilizzare AWS l'integrazione dei servizi di analisi AWS Glue Data Catalog tramite, oppure puoi utilizzare il catalogo open source di Amazon S3 Tables Catalog per Apache Iceberg catalogo clienti.
Nota
Tabelle S3 è supportato su Amazon EMR versione 7.5 o successiva.
Connessione ai bucket da tavolo S3 con Spark su un Amazon EMR Iceberg cluster
In questa procedura, configuri un cluster Amazon EMR configurato per Apache Iceberg e poi avvia un Spark sessione che si collega ai bucket da tavolo. Puoi configurarlo utilizzando l'integrazione dei servizi di AWS analisi oppure puoi utilizzare il catalogo open source Amazon S3 Tables Catalog per AWS GlueApache Iceberg catalogo clienti. Per ulteriori informazioni sul catalogo del client, consulta Accesso alle tabelle utilizzando le tabelle Amazon S3 Iceberg REST endpoint.
Scegli il metodo di utilizzo delle tabelle con Amazon EMR tra le seguenti opzioni.
I seguenti prerequisiti sono necessari per eseguire query nelle tabelle con Spark su Amazon EMR utilizzando il catalogo di tabelle Amazon S3 per Apache Iceberg.
Prerequisiti
-
Associare la policy
AmazonS3TablesFullAccess
al ruolo IAM utilizzato per Amazon EMR.
Per configurare un cluster Amazon EMR con cui interrogare le tabelle Spark
Crea un cluster con la seguente configurazione. Per utilizzare questo comando, sostituisci
con le tue informazioni.user input placeholders
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://
/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-roleamzn-s3-demo-bucket
EMR_DefaultRole
\ --ec2-attributes \ InstanceProfile=EMR_EC2_DefaultRole
,SubnetId=subnet-1234567890abcdef0
,KeyName=my-key-pair
configurations.json
:[{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]
-
Per inizializzare un Spark sessione per Iceberg che si connette al tuo bucket da tavolo, inserisci il seguente comando. Sostituiscilo
con il tuo secchio da tavolo ARN.user input placeholders
spark-shell \ --packages software.amazon.s3tables:s3-tables-catalog-for-iceberg-runtime:0.1.3 \ --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 -
Interroga le tue tabelle con Spark SQL. Per query di esempio, consulta Interrogazione di tabelle S3 con Spark SQL.
Nota
Se utilizzi il DROP TABLE PURGE
comando con Amazon EMR:
Amazon EMR versione 7.5
Imposta la configurazione di Spark su.
spark.sql.catalog.
your-catalog-name
.cache-enabledfalse
Se questa configurazione è impostata sutrue
, eseguire il comando in una nuova sessione o applicazione in modo che la cache della tabella non venga attivata.-
Versioni di Amazon EMR superiori a 7,5
DROP TABLE
non è supportato. Puoi utilizzare l'APIDeleteTable
REST di S3 Tables per eliminare una tabella.