View a markdown version of this page

File system EMR (EMRFS) - 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à.

File system EMR (EMRFS)

Nota

A partire dalla versione EMR 7.10.0, il file system S3A ha sostituito EMRFS come connettore EMR S3 predefinito.

Il file system EMR (EMRFS) è un'implementazione di HDFS che tutti i cluster Amazon EMR utilizzano per leggere e scrivere file normali da Amazon EMR direttamente in Amazon S3. EMRFS offre il vantaggio di archiviare dati persistenti in Amazon S3 per l'utilizzo con Hadoop fornendo nel contempo caratteristiche come la crittografia dei dati.

La crittografia dei dati ti consente di crittografare oggetti che EMRFS scrive su Amazon S3 e consente a EMRFS di utilizzare oggetti crittografati in Amazon S3. Se utilizzi Amazon EMR versione 4.8.0 o versioni successive, puoi utilizzare le configurazioni di sicurezza per configurare la crittografia degli oggetti EMRFS in Amazon S3, insieme ad altre impostazioni di crittografia. Per ulteriori informazioni, consulta Opzioni di crittografia. Se utilizzi una versione precedente di Amazon EMR, puoi configurare manualmente le impostazioni di crittografia. Per ulteriori informazioni, consulta Configurazione della crittografia di Amazon S3 mediante le proprietà di EMRFS.

Amazon S3 offre una forte coerenza di lettura dopo scrittura per tutte le operazioni GET, PUT e LIST in tutte le Regioni AWS. Questo significa che ciò che scrivi usando EMRFS è ciò che leggerai da Amazon S3, senza alcun impatto sulle prestazioni. Per maggiori informazioni, consulta il modello di consistenza dei dati di Amazon S3.

Quando utilizzi Amazon EMR versione 5.10.0 o versioni successive, puoi utilizzare ruoli IAM differenti per le richieste EMRFS ad Amazon S3 in funzione degli utenti del cluster, dei gruppi o del percorso dei dati EMRFS in Amazon S3. Per ulteriori informazioni, consulta Configurazione dei ruoli IAM per le richieste EMRFS a Amazon S3.

avvertimento

Prima di attivare l'esecuzione speculativa per i cluster Amazon EMR che eseguono i processi Apache Spark, consulta le seguenti informazioni.

EMRFS include il S3-optimized committer EMRFS, un'implementazione ottimizzata per la scrittura di file su Amazon S3 quando si utilizza EMRFS. OutputCommitter Se attivi la funzionalità di esecuzione speculativa di Apache Spark con applicazioni che scrivono dati su Amazon S3 e non utilizzano il committer EMRFS, potresti riscontrare problemi di correttezza dei dati descritti in. S3-optimized SPARK-10063 Ciò può verificarsi se si utilizzano versioni di Amazon EMR precedenti al rilascio 5.19 o se si scrivono file su Amazon S3 utilizzando formati come ORC e CSV. Questi formati non sono supportati dal committer EMRFS. S3-optimized Per un elenco completo dei requisiti per l'utilizzo del committer EMRFS, vedere Requisiti per il S3-optimized committer EMRFS. S3-optimized

La scrittura diretta EMRFS viene in genere utilizzata quando il S3-optimized committer EMRFS non è supportato, ad esempio quando si scrive quanto segue:

La scrittura diretta EMRFS non viene utilizzata nei seguenti scenari:

  • Quando il S3-optimized committer EMRFS è abilitato. Vedi Requisiti per il committer EMRFS. S3-optimized

  • Quando si scrivono partizioni dinamiche con la partizione impostata su dynamic. OverwriteMode

  • Quando si scrive su percorsi di partizione personalizzati, ad esempio percorsi che non sono conformi alla convenzione del percorso della partizione predefinita di Hive.

  • Quando si utilizzano file system diversi da EMRFS, come la scrittura su HDFS o l'utilizzo del file system S3A.

Per determinare se la tua applicazione utilizza la scrittura diretta in Amazon EMR 5.14.0 o versioni successive, abilita la registrazione INFO di Spark. Se una riga del log contenente il testo "Direct Write: ENABLED (Scrittura diretta: ABILITATA)" è presente nei log del driver Spark o nei log del container dell'executor Spark, l'applicazione Spark ha scritto utilizzando la scrittura diretta.

Per impostazione predefinita, l'esecuzione speculativa è impostata su OFF su Amazon EMRclusters. Ti consigliamo di non attivare l'esecuzione speculativa se entrambe queste condizioni sono vere:

  • Stai scrivendo dati su Amazon S3.

  • I dati vengono scritti in un formato diverso da Apache Parquet o in formato Apache Parquet senza utilizzare il committer EMRFS. S3-optimized

Se attivi l'esecuzione speculativa Spark e scrivi dati su Amazon S3 utilizzando la scrittura diretta EMRFS, potresti riscontrare una perdita di dati intermittente. Quando si scrivono dati su HDFS o si scrivono dati in Parquet utilizzando il S3-optimized committer EMRFS, Amazon EMR non utilizza la scrittura diretta e questo problema non si verifica.

Se hai bisogno di scrivere dati in formati che utilizzano la scrittura diretta EMRFS da Spark ad Amazon S3 e utilizzi l'esecuzione speculativa, ti consigliamo di scrivere su HDFS e in seguito di trasferire i file di output su Amazon S3 utilizzando S3DistCP.