Configuration de la mise à l'échelle automatique verticale pour Amazon EMR on 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.

Configuration de la mise à l'échelle automatique verticale pour Amazon EMR on EKS

Vous pouvez configurer l'autoscaling vertical lorsque vous soumettez des tâches Amazon EMR Spark via StartJobRunl'API. Définissez les paramètres de configuration liés à la mise à l'échelle automatique sur le pod du pilote Spark, comme indiqué dans l'exemple Soumission d'une tâche Spark avec mise à l'échelle automatique verticale.

L'opérateur de mise à l'échelle automatique verticale d'Amazon EMR on EKS écoute les pods de pilotes équipés de la fonctionnalité de mise à l'échelle automatique. Il assure ensuite l'intégration avec Vertical Pod Autoscaler (VPA) de Kubernetes en se basant sur les paramètres de ces pods de pilotes. Cela facilite le suivi des ressources et la mise à l'échelle automatique des pods d'exécuteurs Spark.

Les sections suivantes décrivent les paramètres que vous pouvez utiliser lorsque vous configurez la mise à l'échelle automatique verticale pour votre cluster Amazon EKS.

Note

Configurez le paramètre de basculement de fonctionnalité sous forme d'étiquette et définissez les autres paramètres sous forme d'annotations sur le pod du pilote Spark. Les paramètres de mise à l'échelle automatique appartiennent au domaine emr-containers.amazonaws.com/ et portent le préfixe dynamic.sizing.

Paramètres requis

Vous devez inclure les deux paramètres ci-dessous dans le pilote de tâche Spark lorsque vous soumettez votre tâche :

Clé Description Valeurs acceptées Valeur par défaut Type Paramètre Spark1

dynamic.sizing

Basculement de fonctionnalité

true, false

non défini

étiquette

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing

dynamic.sizing.signature

Signature de la tâche

string

non défini

annotation

spark.kubernetes.driver.annotation.emr-containers.amazonaws.com/dynamic.sizing.signature

1 Utilisez ce paramètre en tant que SparkSubmitParameter ou ConfigurationOverride dans l'API StartJobRun.

  • dynamic.sizing – Vous pouvez activer ou désactiver la mise à l'échelle automatique verticale à l'aide de l'étiquette dynamic.sizing. Pour activer la mise à l'échelle automatique verticale, attribuez à dynamic.sizing la valeur true sur le pod du pilote Spark. Si vous omettez cette étiquette ou si vous lui attribuez une valeur autre que true, la mise à l'échelle automatique verticale est désactivée.

  • dynamic.sizing.signature – Définissez la signature de la tâche à l'aide de l'annotation dynamic.sizing.signature sur le pod du pilote. La mise à l'échelle automatique verticale compile les données d'utilisation des ressources sur diverses exécutions de tâches Spark d'Amazon EMR afin de fournir des recommandations concernant les ressources. Vous fournissez l'identifiant unique pour relier les tâches entre elles.

    Note

    Si votre tâche se reproduit à un intervalle fixe, par exemple tous les jours ou toutes les semaines, la signature de votre tâche doit rester la même pour chaque nouvelle instance de la tâche. Cela garantit que la mise à l'échelle automatique verticale peut calculer et agréger les recommandations au cours des différentes étapes de la tâche.

1 Utilisez ce paramètre en tant que SparkSubmitParameter ou ConfigurationOverride dans l'API StartJobRun.

Paramètres facultatifs

La mise à l'échelle automatique verticale prend également en charge les paramètres facultatifs ci-dessous. Définissez-les sous forme d'annotations sur le pod du pilote.

Clé Description Valeurs acceptées Valeur par défaut Type Paramètre Spark1

dynamic.sizing.mode

Mode de mise à l'échelle automatique verticale

Off, Initial, Auto

Off

annotation

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.mode

dynamic.sizing.scale.memory

Permet la mise à l'échelle de la mémoire

true, false

true

annotation

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.memory

dynamic.sizing.scale.cpu

Activer ou désactiver la mise à l'échelle de la CPU

true, false

false

annotation

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu

dynamic.sizing.scale.memory.min

Limite minimale de la mise à l'échelle de la mémoire

chaîne, quantité de ressources K8s, p. ex. : 1G

non défini

annotation

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.min

dynamic.sizing.scale.memory.max

Limite maximale de mise à l'échelle de la mémoire

chaîne, quantité de ressources K8s, p. ex. : 4G

non défini

annotation

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.memory.max

dynamic.sizing.scale.cpu.min

Limite minimale de la mise à l'échelle de la CPU

chaîne, quantité de ressources K8s, p. ex. : 1

non défini

annotation

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.min

dynamic.sizing.scale.cpu.max

Limite maximale de la mise à l'échelle de la CPU

chaîne, quantité de ressources K8s, p. ex. : 2

non défini

annotation

spark.kubernetes.driver.label.emr-containers.amazonaws.com/dynamic.sizing.scale.cpu.max

Modes de mise à l'échelle automatique verticale

Le paramètre mode correspond aux différents modes de mise à l'échelle automatique pris en charge par VPA. Utilisez l'annotation dynamic.sizing.mode sur le pod du pilote pour définir le mode. Les valeurs suivantes sont prises en charge pour ce paramètre :

  • Désactivé – Mode de simulation où vous pouvez consulter les recommandations, mais la mise à l'échelle automatique n'est pas effectuée. Il s'agit du mode par défaut pour la mise à l'échelle automatique verticale. Dans ce mode, la ressource Vertical Pod Autoscaler associée calcule les recommandations, et vous pouvez consulter ces recommandations à l'aide d'outils tels que kubectl, Prometheus et Grafana.

  • Initial – Dans ce mode, VPA redimensionne automatiquement les ressources au démarrage de la tâche si des recommandations sont disponibles sur la base de l'historique des exécutions de la tâche, comme dans le cas d'une tâche récurrente.

  • Automatique – Dans ce mode, VPA expulse les pods d'exécuteurs Spark et les met automatiquement à l'échelle avec les paramètres de ressources recommandés lorsque le pod du pilote Spark les redémarre. VPA expulse parfois les pods d'exécuteurs Spark en cours d'exécution, ce qui peut entraîner une latence supplémentaire lorsqu'il réessaie l'exécuteur interrompu.

Mise à l'échelle des ressources

Lorsque vous configurez la mise à l'échelle automatique verticale, vous pouvez choisir de mettre à l'échelle les ressources de CPU et de mémoire. Définissez les annotations dynamic.sizing.scale.cpu et dynamic.sizing.scale.memory sur true ou false. Par défaut, la mise à l'échelle de la CPU est définie sur false, et la mise à l'échelle de la mémoire est définie sur true.

Ressources minimales et maximales (limites)

En option, vous pouvez également définir des limites pour les ressources de CPU et de mémoire. Choisissez une valeur minimale et maximale pour ces ressources avec les annotations dynamic.sizing.[memory/cpu].[min/max] lorsque vous activez la mise à l'échelle automatique. Par défaut, les ressources ne sont pas limitées. Définissez les annotations sous forme de chaînes représentant une quantité de ressources Kubernetes. Par exemple, définissez dynamic.sizing.memory.max sur 4G pour représenter 4 Go.