Effettuare nuovi tentativi per le richieste Amazon S3 con 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à.

Effettuare nuovi tentativi per le richieste Amazon S3 con EMRFS

In questo argomento vengono fornite informazioni sulle strategie di nuovi tentativi che è possibile utilizzare quando si effettuano richieste ad Amazon S3 con EMRFS. Quando il tasso di richiesta aumenta, S3 tenta di dimensionarsi per supportare la nuova tariffa. Durante questo processo, S3 può limitare le richieste e restituire un errore 503 Slow Down. Per migliorare il tasso di successo delle richieste S3, è possibile modificare la strategia di nuovi tentativi impostando le proprietà nella configurazione di emrfs-site

È possibile modificare la strategia di nuovi tentativi nei modi seguenti.

  • Aumentare il limite massimo di tentativi per la strategia di nuovi tentativi con backoff esponenziale predefinita.

  • Abilitare e configurare la strategia di nuovi tentativi come aumento additivo - diminuzione moltiplicativa (AIMD). AIMD è supportato per Amazon EMR rilascio 6.4.0 e successivi.

Usare la strategia di backoff esponenziale predefinita

Per impostazione predefinita, EMRFS utilizza una strategia di backoff esponenziale per effettuare nuovi tentativi per le richieste Amazon S3. Il limite di nuovi tentativi predefinito di EMRFS è pari a 15. Per evitare un errore 503 Slow Down di S3 è possibile aumentare il limite di nuovi tentativi quando si crea un nuovo cluster, in un cluster in esecuzione o in fase di runtime dell'applicazione.

Per aumentare il limite di nuovi tentativi è necessario modificare il valore di fs.s3.maxRetries nella propria configurazione emrfs-site. I seguenti set di configurazione di esempio impostano fs.s3.maxRetries a un valore personalizzato pari a 30.

[ { "Classification": "emrfs-site", "Properties": { "fs.s3.maxRetries": "30" } } ]

Per ulteriori informazioni sull'utilizzo degli oggetti di configurazione, consulta Configurazione delle applicazioni.

Usare la strategia di nuovi tentativi dell'AIMD

Con Amazon EMR rilascio 6.4.0 e successivi, EMRFS supporta una strategia alternativa di ripetizione basata su un modello di aumento additivo/diminuzione moltiplicativa (AIMD). La strategia di nuovi tentativi AIMD è particolarmente utile quando si lavora con cluster Amazon EMR di grandi dimensioni.

AIMD calcola una frequenza di richiesta personalizzata utilizzando i dati sulle recenti richieste di successo. Questa strategia riduce il numero di richieste limitate e i tentativi totali richiesti per ciascuna richiesta.

Per abilitare la strategia di nuovi tentativi AIMD, è necessario impostare la proprietà fs.s3.aimd.enabled su true nella configurazione emrfs-site come nell'esempio seguente.

[ { "Classification": "emrfs-site", "Properties": { "fs.s3.aimd.enabled": "true" } } ]

Per ulteriori informazioni sull'utilizzo degli oggetti di configurazione, consulta Configurazione delle applicazioni.

Impostazioni avanzate di nuovi tentativi dell'AIMD

È possibile configurare le proprietà elencate nella tabella seguente per perfezionare il comportamento dei nuovi tentativi quando si utilizza la strategia di nuovi tentativi dell'AIMD. Per la maggior parte dei casi d'uso, si consiglia di utilizzare i valori predefiniti.

Proprietà avanzate della strategia di nuovi tentativi dell'AIMD
Proprietà Valore predefinito Descrizione
fs.s3.aimd.increaseIncrement 0.1 Controlla la rapidità con cui il tasso di richiesta aumenta quando le richieste consecutive hanno esito positivo.
fs.s3.aimd.reductionFactor 2 Controlla la rapidità con cui il tasso di richiesta diminuisce quando Amazon S3 restituisce una risposta 503. Il fattore predefinito di 2 riduce a metà il tasso di richiesta.
fs.s3.aimd.minRate 0.1 Imposta il limite inferiore per il tasso di richiesta quando le richieste subiscono una limitazione sostenuta da S3.
fs.s3.aimd.initialRate 5500 Imposta il tasso di richiesta iniziale, che cambia in base ai valori specificati per fs.s3.aimd.increaseIncrement e fs.s3.aimd.reductionFactor.

La frequenza iniziale viene utilizzata anche per le richieste GET e ridimensionata proporzionalmente (3500/5500) per le richieste PUT.

fs.s3.aimd.adjustWindow 2 Controlla la frequenza di adeguamento del tasso di richiesta, misurato in numero di risposte.
fs.s3.aimd.maxAttempts 100 Imposta il numero massimo di tentativi di provare una richiesta.