View a markdown version of this page

Il protocollo di commit EMRFS e i caricamenti in S3-optimized più parti - 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à.

Il protocollo di commit EMRFS e i caricamenti in S3-optimized più parti

Per utilizzare l'ottimizzazione per la sovrascrittura dinamica delle partizioni nel protocollo di S3-optimized commit EMRFS, i caricamenti multiparte devono essere abilitati in Amazon EMR. I caricamenti in più parti sono abilitati per impostazione predefinita. È possibile abilitarli nuovamente, se necessario. Per ulteriori informazioni, consulta Configurazione del caricamento in più parti per Amazon S3 nella Guida alla gestione di Amazon EMR.

Durante la sovrascrittura dinamica delle partizioni, il protocollo di S3-optimized commit EMRFS utilizza le caratteristiche simili a quelle transazionali dei caricamenti in più parti per garantire che i file scritti dai tentativi di attività vengano visualizzati nella posizione di output del lavoro solo dopo il completamento del lavoro. Utilizzando i caricamenti in più parti in questo modo, il protocollo di commit migliora le prestazioni del commit dei processi rispetto al protocollo SQLHadoopMapReduceCommitProtocol predefinito. Quando si utilizza il protocollo di S3-optimized commit EMRFS, è necessario considerare alcune differenze fondamentali rispetto al tradizionale comportamento di caricamento in più parti:

  • I caricamenti in più parti vengono sempre eseguiti indipendentemente dalle dimensioni del file. Questo differisce dal comportamento predefinito di EMRFS, dove la proprietà fs.s3n.multipart.uploads.split.size controlla le dimensioni del file in cui vengono attivati i caricamenti in più parti.

  • I caricamenti in più parti restano in stato incompleto per un periodo di tempo più lungo fino a quando avviene il commit o l'arresto dell'attività. Questo differisce dal comportamento predefinito di EMRFS dove un caricamento in più parti si competa quando l'attività termina la scrittura in un determinato file.

A causa di queste differenze, se un esecutore JVM di Spark si arresta in modo anomalo o viene interrotto mentre le attività sono in corso e stanno scrivendo dati in Amazon S3, oppure un driver JVM di Spark ha un arresto anomalo o viene chiuso in modo forzato mentre è in corso un processo, i caricamenti in più parti hanno più probabilità di restare indietro. Per questo motivo, quando utilizzi il protocollo di S3-optimized commit EMRFS, assicurati di seguire le migliori pratiche per la gestione dei caricamenti multipart non riusciti. Per ulteriori informazioni, consulta le best practice per utilizzare i bucket Amazon S3 nella Guida alla gestione di Amazon EMR.