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à.
Committer S3A MagicV2
Con la versione EMR-6.15.0, Amazon EMR introduce un nuovo tipo di committer S3A noto come committer MagicV2. Per informazioni complete su questa funzionalità, consulta le sezioni della documentazione pertinenti.
MagicV2 Committer rappresenta un'implementazione avanzata dell'open source MagicCommitter
Rispetto all'originale MagicCommitter, il committer MagicV2 dimostra prestazioni superiori scrivendo file nella posizione di output del lavoro durante la fase di conferimento dell'attività, anziché durante la fase di conferimento del lavoro. Questo approccio consente la scrittura distribuita di file ed elimina la necessità di uno storage temporaneo di metadati con commit su Amazon S3, con conseguente miglioramento della redditività. Inoltre, il committer MagicV2 offre una maggiore flessibilità consentendo la sovrascrittura del percorso dei file su più thread durante il processo di commit.
Abilita il Committer MagicV2
Per abilitare il committer MagicV2, passa la seguente configurazione nella configurazione del lavoro o usa la configurazione del sito principale per impostare la proprietà. Per ulteriori informazioni, consulta la sezione Configurazione delle applicazioni.
mapreduce.outputcommitter.factory.scheme.s3a=org.apache.hadoop.fs.s3a.commit.S3ACommitterFactory fs.s3a.committer.magic.enabled=true fs.s3a.committer.name=magicv2 fs.s3a.committer.magic.track.commits.in.memory.enabled=true
Per i carichi di lavoro che richiedono la sovrascrittura della directory esistente prima di eseguire il commit o scrivere i nuovi file, è necessaria la seguente configurazione aggiuntiva, oltre alla configurazione menzionata in precedenza.
fs.s3a.committer.magic.overwrite.and.commit=true fs.s3a.committer.magic.delete.directory.threads=
thread size
Il valore predefinito per la configurazione è. threads
20
Tuttavia, questo parametro deve essere regolato quando c'è un gran numero di directory da sovrascrivere per migliorare le prestazioni. Questo è disponibile solo in EMR-7.2.0 e versioni successive.
Considerazioni
-
Se la Java Virtual Machine (JVM) si blocca o si interrompe durante l'esecuzione di attività e la scrittura di dati su Amazon S3, è più probabile che i caricamenti incompleti in più parti vengano lasciati indietro. Per questo motivo, quando utilizzi il committer MagicV2, assicurati di seguire le migliori pratiche per la gestione dei caricamenti multipart non riusciti. Per ulteriori informazioni, consulta la sezione Best practice per lavorare con i bucket Amazon S3 nella Amazon EMR Management Guide.
-
Se un processo fallisce, tutti i file salvati dalle attività riuscite saranno ancora visibili nel percorso di destinazione. In questi casi, l'utente dovrà pulire manualmente i file salvati prima di rieseguire il job sullo stesso percorso di destinazione.
-
Il committer MagicV2 consuma una piccola quantità di memoria per ogni file scritto da un tentativo di operazione fino a quando l'operazione non viene confermata o interrotta. Nella maggior parte dei processi, la quantità di memoria secca consumata è trascurabile. Tuttavia, in alcuni casi in cui un singolo processo esecutore gestisce contemporaneamente un gran numero di attività, può comportare un notevole impatto sulla memoria e il contenitore o l'esecutore potrebbe esaurire la memoria (OOM). L'aumento della memoria del contenitore o dell'esecutore dovrebbe risolvere questo problema.