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

Per utilizzare l'ottimizzazione per la sovrascrittura dinamica delle partizioni nel protocollo di commit EMRFS ottimizzato per S3, 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 Configurare il caricamento multiparte per Amazon S3 nella EMRAmazon Management Guide.

Durante la sovrascrittura dinamica delle partizioni, il protocollo di commit EMRFS ottimizzato per S3 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 commit EMRFS ottimizzato per S3, ci sono alcune differenze fondamentali da considerare rispetto al tradizionale comportamento di caricamento in più parti:

  • I caricamenti in più parti vengono sempre eseguiti indipendentemente dalle dimensioni del file. Ciò è diverso dal comportamento predefinito diEMRFS, in cui la fs.s3n.multipart.uploads.split.size proprietà controlla la dimensione del file alla quale 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à. Ciò è diverso dal comportamento predefinito EMRFS in cui un caricamento in più parti viene completato quando un'attività termina la scrittura di un determinato file.

A causa di queste differenze, se uno Spark Executor si JVM blocca o si interrompe durante l'esecuzione di attività e la scrittura di dati su Amazon S3, oppure se uno Spark Driver si JVM blocca o viene interrotto mentre un processo è in esecuzione, è più probabile che i caricamenti incompleti in più parti vengano lasciati indietro. Per questo motivo, quando utilizzi il protocollo di commit EMRFS ottimizzato per S3, assicurati di seguire le migliori pratiche per la gestione dei caricamenti multiparte non riusciti. Per ulteriori informazioni, consulta la sezione Best practice per lavorare con i bucket Amazon S3 nella Amazon EMR Management Guide.