Cómo empezar a utilizar el escalado automático vertical de Amazon EMR en EKS - Amazon EMR

Cómo empezar a utilizar el escalado automático vertical de Amazon EMR en EKS

Utilice el escalado automático vertical en Amazon EMR en EKS cuando desee un ajuste automático de los recursos de memoria y CPU para adaptarlos a la carga de trabajo de la aplicación de Spark de Amazon EMR. Para obtener más información, consulte Uso del escalado automático vertical con trabajos de Spark de Amazon EMR.

Envío de un trabajo de Spark con escalado automático vertical

Cuando envíe un trabajo a través de la API StartJobRun, agregue las dos configuraciones siguientes al controlador de su trabajo de Spark para activar el escalado automático vertical:

"spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing":"true", "spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.signature":"YOUR_JOB_SIGNATURE"

En el código anterior, la primera línea habilita la capacidad de escalado automático vertical. La siguiente línea es una configuración de firma obligatoria que le permite elegir una firma para su trabajo.

Para obtener más información sobre estas configuraciones y los valores de parámetros aceptables, consulte Configuración del escalado automático vertical de Amazon EMR en EKS. De forma predeterminada, su trabajo se envía en el modo Desactivado de escalado automático vertical solo de supervisión. Este estado de supervisión le permite calcular y ver las recomendaciones de recursos sin llevar a cabo el escalado automático. Para obtener más información, consulte Modos de escalado automático vertical.

En el siguiente ejemplo, se muestra cómo completar un ejemplo de comando start-job-run con escalado automático vertical:

aws emr-containers start-job-run \ --virtual-cluster-id $VIRTUAL_CLUSTER_ID \ --name $JOB_NAME \ --execution-role-arn $EMR_ROLE_ARN \ --release-label emr-6.10.0-latest \ --job-driver '{ "sparkSubmitJobDriver": { "entryPoint": "local:///usr/lib/spark/examples/src/main/python/pi.py" } }' \ --configuration-overrides '{ "applicationConfiguration": [{ "classification": "spark-defaults", "properties": { "spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing": "true", "spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.signature": "test-signature" } }] }'

Verificación de la funcionalidad de escalado automático vertical

Para comprobar que el escalado automático vertical funcione correctamente en el trabajo enviado, use kubectl para obtener el recurso personalizado verticalpodautoscaler y ver sus recomendaciones de escalado. Por ejemplo, el siguiente comando solicita recomendaciones sobre el trabajo de ejemplo de la sección Envío de un trabajo de Spark con escalado automático vertical:

kubectl get verticalpodautoscalers --all-namespaces \ -l=emr-containers.amazonaws.com/dynamic.sizing.signature=test-signature

El resultado de esta consulta debe parecerse al siguiente:

NAME MODE CPU MEM PROVIDED AGE ds-jceyefkxnhrvdzw6djum3naf2abm6o63a6dvjkkedqtkhlrf25eq-vpa Off 3304504865 True 87m

Si el resultado no es similar o contiene un código de error, consulte Solución de problemas en el escalado automático vertical de Amazon EMR en EKS para ver los pasos que le ayudarán a resolver el problema.