Commencer à utiliser la mise à l'échelle automatique verticale pour Amazon sur EMR EKS - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Commencer à utiliser la mise à l'échelle automatique verticale pour Amazon sur EMR EKS

Soumission d'une tâche Spark avec mise à l'échelle automatique verticale

Lorsque vous soumettez une tâche via le StartJobRunAPI, ajoutez les deux configurations suivantes au pilote de votre tâche Spark afin d'activer la mise à l'échelle automatique verticale :

"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"

Dans le code ci-dessus, la première ligne active la fonctionnalité de mise à l'échelle automatique verticale. La ligne suivante est une configuration de signature obligatoire qui vous permet de choisir une signature pour votre tâche.

Pour plus d'informations sur ces configurations et les valeurs de paramètres acceptables, consultez Configuration de l'autoscaling vertical pour Amazon sur EMR EKS. Par défaut, votre tâche est soumise en mode Désactivé, réservé à la surveillance uniquement, de la mise à l'échelle automatique verticale. Cet état de surveillance vous permet de calculer et de consulter les recommandations en matière de ressources sans procéder à la mise à l'échelle automatique. Pour de plus amples informations, veuillez consulter Modes de mise à l'échelle automatique verticale.

L'exemple suivant montre comment exécuter un exemple de commande start-job-run avec la mise à l'échelle automatique verticale :

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" } }] }'

Vérification de la fonctionnalité de mise à l'échelle automatique verticale

Pour vérifier que la mise à l'échelle automatique verticale fonctionne correctement pour la tâche soumise, utilisez kubectl pour obtenir la ressource personnalisée verticalpodautoscaler et consulter vos recommandations de mise à l'échelle. Par exemple, la commande suivante demande des recommandations sur l'exemple de tâche à partir de la section Soumission d'une tâche Spark avec mise à l'échelle automatique verticale :

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

Le résultat de cette requête devrait ressembler à ce qui suit :

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

Si votre résultat ne ressemble pas à cela ou contient un code d'erreur, consultez Résolution des problèmes de mise à l'échelle automatique verticale d'Amazon EMR on EKS pour des étapes permettant de résoudre le problème.