Reintento de solicitudes de Amazon S3 con EMRFS
En este tema se proporciona información sobre las estrategias de reintentos que puede utilizar al realizar solicitudes a Amazon S3 con EMRFS. Cuando la tasa de solicitudes aumenta, S3 intenta escalar para dar cabida a la nueva tasa. Durante este proceso, S3 puede limitar las solicitudes y devolver un error 503 Slow Down
. Para mejorar la tasa de éxito de las solicitudes de S3, puede configurar las propiedades de la configuración emrfs-site
para ajustar la estrategia de reintentos.
Puede ajustar la estrategia de reintentos de las siguientes maneras.
-
Aumente el límite máximo de reintentos para la estrategia de reintentos de retroceso exponencial predeterminada.
-
Habilite y configure la estrategia de reintentos de aumento aditivo/disminución multiplicativa (AIMD). AIMD es compatible con la versión 6.4.0 y posteriores de Amazon EMR.
Uso de la estrategia de retroceso exponencial predeterminada
De forma predeterminada, EMRFS utiliza una estrategia de retroceso exponencial para reintentar las solicitudes de Amazon S3. El límite de reintentos de EMRFS predeterminado es de 15. Para evitar un error 503 Slow Down
de S3, puede aumentar el límite de reintentos al crear un clúster nuevo, en un clúster en ejecución o durante el tiempo de ejecución de la aplicación.
Para aumentar el límite de reintentos, debe cambiar el valor de fs.s3.maxRetries
de la configuración emrfs-site
. En el siguiente ejemplo de configuración se establece fs.s3.maxRetries
en un valor personalizado de 30.
[ { "Classification": "emrfs-site", "Properties": { "fs.s3.maxRetries": "
30
" } } ]
Para obtener información acerca del uso de objetos de configuración, consulte Configuración de aplicaciones.
Uso de la estrategia de reintentos de AIMD
Con la versión 6.4.0 y posteriores de Amazon EMR, EMRFS admite una estrategia de reintentos alternativa basada en un modelo de aumento aditivo/disminución multiplicativa (AIMD). La estrategia de reintentos de AIMD resulta especialmente útil cuando se trabaja con clústeres grandes de Amazon EMR.
AIMD calcula una tasa de solicitudes personalizada a partir de los datos sobre las solicitudes recientes que se han realizado correctamente. Esta estrategia reduce el número de solicitudes limitadas y el total de intentos necesarios por solicitud.
Para habilitar la estrategia de reintentos de AIMD, debe establecer la propiedad fs.s3.aimd.enabled
en true
en la configuración emrfs-site
, como en el siguiente ejemplo.
[ { "Classification": "emrfs-site", "Properties": { "fs.s3.aimd.enabled": "true" } } ]
Para obtener información acerca del uso de objetos de configuración, consulte Configuración de aplicaciones.
Configuración avanzada de reintentos de AIMD
Puede configurar las propiedades que se muestran en la siguiente tabla para refinar el comportamiento de los reintentos al utilizar la estrategia de reintentos de AIMD. Para la mayoría de los casos de uso, le recomendamos que utilice los valores predeterminados.
Propiedad | Valor predeterminado | Descripción |
---|---|---|
fs.s3.aimd.increaseIncrement |
0.1 | Controla la rapidez con la que aumenta la tasa de solicitudes cuando las solicitudes consecutivas se realizan correctamente. |
fs.s3.aimd.reductionFactor |
2 | Controla la rapidez con la que disminuye la tasa de solicitudes cuando Amazon S3 devuelve una respuesta 503. El factor predeterminado de 2 reduce la tasa de solicitudes a la mitad. |
fs.s3.aimd.minRate |
0.1 | Establece el límite inferior de la tasa de solicitudes cuando las solicitudes sufren una limitación constante por parte de S3. |
fs.s3.aimd.initialRate |
5500 | Establece la tasa de solicitudes inicial, que luego cambia según los valores que especifique para fs.s3.aimd.increaseIncrement y fs.s3.aimd.reductionFactor .La tasa inicial también se usa para las solicitudes GET y se escala de forma proporcional (3500/5500) para las solicitudes PUT. |
fs.s3.aimd.adjustWindow |
2 | Controla la frecuencia con la que se ajusta la tasa de solicitudes, medida en número de respuestas. |
fs.s3.aimd.maxAttempts |
100 | Establece el número máximo de intentos para intentar una solicitud. |