Caricamento dei dati in Amazon S3 Express One Zone - Amazon EMR

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à.

Caricamento dei dati in Amazon S3 Express One Zone

Panoramica

Con Amazon EMR 6.15.0 e versioni successive, puoi usare Amazon EMR con Apache Spark insieme alla classe di storage Amazon S3 Express One Zone per migliorare le prestazioni nei tuoi job Spark. EMRLe versioni di Amazon 7.2.0 e successive supportano HBase anche Flink e Hive, quindi puoi trarre vantaggio anche da S3 Express One Zone se utilizzi queste applicazioni. S3 Express One Zone è una classe di storage S3 per applicazioni che accedono frequentemente ai dati con centinaia di migliaia di richieste al secondo. Al momento del suo rilascio, S3 Express One Zone offre lo storage di oggetti cloud con la latenza più bassa e le prestazioni più elevate in Amazon S3.

Prerequisiti

  • Autorizzazioni S3 Express One Zone: quando S3 Express One Zone richiama inizialmente un'operazione come GET, LIST o PUT su un oggetto S3, la classe di archiviazione chiama CreateSession per tuo conto. La tua IAM politica deve consentire l'autorizzazione in modo che il s3express:CreateSession S3A il connettore può invocare il. CreateSession API Per un esempio di policy con questa autorizzazione, consulta Nozioni di base su Amazon S3 Express One Zone.

  • S3A connettore: per configurare il cluster Spark per accedere ai dati da un bucket Amazon S3 che utilizza la classe di storage S3 Express One Zone, devi utilizzare il connettore Apache Hadoop S3A. Per utilizzare il connettore, assicurati che tutti gli S3 URIs utilizzino lo s3a schema. In caso contrario, puoi modificare l'implementazione del file system che utilizzi per gli schemi s3 e s3n.

Per modificare lo schema s3, specifica le seguenti configurazioni del cluster:

[ { "Classification": "core-site", "Properties": { "fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem", "fs.AbstractFileSystem.s3.impl": "org.apache.hadoop.fs.s3a.S3A" } } ]

Per modificare lo schema s3n, specifica le seguenti configurazioni del cluster:

[ { "Classification": "core-site", "Properties": { "fs.s3n.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem", "fs.AbstractFileSystem.s3n.impl": "org.apache.hadoop.fs.s3a.S3A" } } ]

Nozioni di base su Amazon S3 Express One Zone

Creazione di una policy di autorizzazione

Prima di poter creare un cluster che utilizza Amazon S3 Express One Zone, devi creare una IAM policy da collegare al profilo dell'EC2istanza Amazon per il cluster. La policy deve disporre delle autorizzazioni per accedere alla classe di storage S3 Express One Zone. La policy di esempio seguente mostra come concedere l'autorizzazione richiesta. Dopo aver creato la policy, associa la policy al ruolo del profilo di istanza che utilizzi per creare il EMR cluster, come descritto nella Creazione e configurazione del cluster sezione.

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Resource": "arn:aws:s3express:region-code:account-id:bucket/DOC-EXAMPLE-BUCKET", "Action": [ "s3express:CreateSession" ] } ] }

Creazione e configurazione del cluster

Quindi, crea un cluster che esegua SparkHBase, Flink o Hive con S3 Express One Zone. I passaggi seguenti descrivono una panoramica di alto livello per creare un cluster nella AWS Management Console:

  1. Vai alla EMR console Amazon e seleziona Clusters dalla barra laterale. Quindi, scegli Crea cluster.

  2. Se usi Spark, seleziona la EMR versione Amazon emr-6.15.0 o successiva. Se usi HBase Flink o Hive, seleziona emr-7.2.0 o una versione successiva.

  3. Seleziona le applicazioni che desideri includere nel cluster, come Spark o FlinkHBase.

  4. Per abilitare Amazon S3 Express One Zone, inserisci una configurazione simile all'esempio seguente nella sezione Impostazioni software. Le configurazioni e i valori consigliati sono descritti nella sezione Panoramica delle configurazioni che segue questa procedura.

    [ { "Classification": "core-site", "Properties": { "fs.s3a.aws.credentials.provider": "software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider", "fs.s3a.change.detection.mode": "none", "fs.s3a.endpoint.region": "aa-example-1", "fs.s3a.select.enabled": "false" } }, { "Classification": "spark-defaults", "Properties": { "spark.sql.sources.fastS3PartitionDiscovery.enabled": "false" } } ]
  5. Nella EMR sezione Profilo dell'EC2istanza per Amazon, scegli di utilizzare un ruolo esistente e utilizza un ruolo con la politica allegata che hai creato nella Creazione di una policy di autorizzazione sezione precedente.

  6. Configura il resto delle impostazioni del cluster in base all'applicazione, quindi seleziona Crea cluster.

Panoramica delle configurazioni

Le tabelle seguenti descrivono le configurazioni e i valori suggeriti da specificare quando si configura un cluster che utilizza S3 Express One Zone con AmazonEMR, come descritto nella Creazione e configurazione del cluster sezione.

S3A configurazioni

Parametro Valore predefinito Valore consigliato Spiegazione

fs.s3a.aws.credentials.provider

Se non specificato, viene utilizzato AWSCredentialProviderList nel seguente ordine: TemporaryAWSCredentialsProvider, SimpleAWSCredentialsProvider, EnvironmentVariableCredentialsProvider, IAMInstanceCredentialsProvider.

software.amazon.awssdk.auth.credentials.InstanceProfileCredentialsProvider

Il ruolo del profilo dell'EMRistanza Amazon deve avere la politica che consente di S3A filesystem da chiamare. s3express:CreateSession Anche altri provider di credenziali funzionano se dispongono delle autorizzazioni S3 Express One Zone.

fs.s3a.endpoint.region

null

Il Regione AWS luogo in cui hai creato il bucket.

La logica di risoluzione regionale non funziona con la classe di storage S3 Express One Zone.

fs.s3a.select.enabled

true

false

Amazon S3 select non è supportato con la classe di storage S3 Express One Zone.

fs.s3a.change.detection.mode

server

nessuno

Rilevamento delle modifiche tramite S3A funziona controllando MD5basatoetags. La classe di storage S3 Express One Zone non supporta MD5 checksums.

Spark configurazioni

Parametro Valore predefinito Valore consigliato Spiegazione

spark.sql.sources.fastS3PartitionDiscovery.enabled

true

false

L'ottimizzazione interna utilizza un API parametro S3 che la classe di storage S3 Express One Zone non supporta.

Considerazioni

Considera quanto segue quando integri Apache Spark su Amazon EMR con la classe di storage S3 Express One Zone:

  • Il connettore S3A è necessario per utilizzare S3 Express One Zone con Amazon. EMR Solo S3A dispone delle funzionalità e delle classi di storage necessarie per interagire con S3 Express One Zone. Per le fasi di configurazione del connettore, consulta Prerequisiti.

  • La classe di storage Amazon S3 Express One Zone è supportata solo con Spark su un EMR cluster Amazon eseguito su Amazon. EC2

  • La classe di storage Amazon S3 Express One Zone supporta solo SSE-S3 crittografia. Per ulteriori informazioni, consulta Crittografia lato server con chiavi SSE gestite Amazon S3 (-S3).

  • La classe di storage Amazon S3 Express One Zone non supporta le scritture con S3A FileOutputCommitter. Le scritture con S3A su bucket S3 Express FileOutputCommitter One Zone generano un errore: InvalidStorageClass: The storage class you specified is not valid.

  • Amazon S3 Express One Zone è supportato dalle EMR versioni di Amazon 6.15.0 e successive. EMR EC2 Inoltre, è supportato dalle EMR versioni di Amazon 7.2.0 e successive su Amazon su EKS e EMR su Amazon EMR Serverless.