Comprendre la stratégie et les scénarios d'allocation des nœuds - 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.

Comprendre la stratégie et les scénarios d'allocation des nœuds

Cette section donne un aperçu de la stratégie d'allocation des nœuds et des scénarios de mise à l'échelle courants que vous pouvez utiliser avec la mise à l'échelle gérée par Amazon EMR.

Stratégie d'allocation de nœud

La mise à l'échelle gérée par Amazon EMR alloue les nœuds principaux et les nœuds de tâches en fonction des stratégies d'augmentation et de réduction d'échelle suivantes :

Stratégie d'augmentation

  • La mise à l'échelle gérée par Amazon EMR ajoute d'abord de la capacité aux nœuds principaux, puis aux nœuds de tâches jusqu'à ce que la capacité maximale autorisée soit atteinte ou jusqu'à ce que la capacité cible d'augmentation souhaitée soit atteinte.

  • Lorsque Amazon EMR subit un retard dans l'augmentation avec le groupe d'instances actuel, les clusters qui utilisent la mise à l'échelle gérée basculent automatiquement vers un autre groupe d'instances de tâches.

  • Si le paramètre MaximumCoreCapacityUnits est défini, Amazon EMR adapte les nœuds principaux jusqu'à ce que les unités principales atteignent la limite maximale autorisée. Toute la capacité restante est ajoutée aux nœuds de tâches.

  • Si le paramètre MaximumOnDemandCapacityUnits est défini, Amazon EMR met le cluster à l'échelle en utilisant les instances à la demande jusqu'à ce que les unités à la demande atteignent la limite maximale autorisée. Toute la capacité restante est ajoutée à l'aide d'instances Spot.

  • Si les paramètres MaximumCoreCapacityUnits et MaximumOnDemandCapacityUnits sont définis, Amazon EMR prend en compte les deux limites lors de la mise à l'échelle.

    Par exemple, si MaximumCoreCapacityUnits est inférieur à MaximumOnDemandCapacityUnits, Amazon EMR augmente d'abord les nœuds principaux jusqu'à ce que la limite de capacité principale soit atteinte. Pour la capacité restante, Amazon EMR utilise d'abord des instances à la demande pour mettre à l'échelle les nœuds de tâches jusqu'à ce que la limite de la demande soit atteinte, puis utilise des instances Spot pour les nœuds de tâches.

Stratégie de réduction

  • Les versions 5.34.0 et ultérieures, ainsi que les versions 6.4.0 et ultérieures d'Amazon EMR, prennent en charge la mise à l'échelle gérée qui tient compte des données de réorganisation Spar (données que Spark redistribue entre les partitions pour effectuer des opérations spécifiques). Pour plus d'informations sur les opérations de réorganisation, consultez le Guide de programmation Spark. La mise à l'échelle gérée réduit uniquement les instances sous-utilisées et qui ne contiennent pas de données de réorganisation utilisées activement. Cette mise à l'échelle intelligente empêche la perte involontaire de données par transfert, évitant ainsi de devoir effectuer de nouvelles tentatives de travail et de recalculer des données intermédiaires.

  • La mise à l'échelle gérée par Amazon EMR supprime d'abord les nœuds de tâches, puis les nœuds principaux jusqu'à ce que la capacité cible de réduction souhaitée soit atteinte. Le cluster ne s'adapte jamais en dessous des contraintes minimales définies dans la politique de mise à l'échelle gérée.

  • Au sein de chaque type de nœud (nœuds principaux ou nœuds de tâches), la mise à l'échelle gérée par Amazon EMR supprime d'abord les instances Spot, puis les instances à la demande.

  • Pour les clusters lancés avec Amazon EMR 5.x, versions 5.34.0 et ultérieures, et 6.x, versions 6.4.0 et ultérieures, la mise à l'échelle gérée par Amazon EMR ne réduit pas la taille des nœuds sur lesquels ApplicationMaster pour Apache Spark est exécuté. Cela permet de minimiser les échecs et les nouvelles tentatives, ce qui contribue à améliorer les performances de tâche et à réduire les coûts. Pour vérifier quels nœuds de votre cluster exécutent ApplicationMaster, rendez-vous sur le serveur d'historique Spark et filtrez le pilote sous l'onglet Exécuteurs de l'ID de votre application Spark.

Si le cluster n'est pas chargé, Amazon EMR annule l'ajout de nouvelles instances issues d'une évaluation précédente et effectue des opérations de réduction. Si le cluster est soumis à une charge importante, Amazon EMR annule la suppression des instances et effectue des opérations d'augmentation.

Considérations concernant l'allocation de nœuds

Nous vous recommandons d'utiliser l'option d'achat à la demande pour les nœuds principaux afin d'éviter toute perte de données HDFS en cas de réclamation Spot. Vous pouvez utiliser l'option d'achat Spot pour les nœuds de tâches afin de réduire les coûts et d'accélérer l'exécution des tâches lorsque davantage d'instances Spot sont ajoutées aux nœuds de tâches.

Scénarios d'allocation de nœuds

Vous pouvez créer différents scénarios de mise à l'échelle en fonction de vos besoins en configurant les paramètres maximum, minimum, limite à la demande et maximum du nœud principal dans différentes combinaisons.

Scénario 1 : mise à l'échelle des nœuds principaux uniquement

Pour mettre à l'échelle les nœuds principaux uniquement, les paramètres de mise à l'échelle gérée doivent répondre aux exigences suivantes :

  • La limite à la demande est égale à la limite maximale.

  • Le nœud principal maximal est égal à la limite maximale.

Lorsque la limite à la demande et les paramètres maximum du nœud principal ne sont pas spécifiés, les deux paramètres sont définis par défaut sur la limite maximale.

Les exemples suivants montrent le scénario de mise à l'échelle des nœuds principaux uniquement.

État initial du cluster Paramètres de dimensionnement Comportement de mise à l'échelle.

Groupes d'instances

Principal : 1 à la demande

De tâche : 1 à la demande et 1Spot

UnitType : Instances

MinimumCapacityUnits : 1

MaximumCapacityUnits : 20

MaximumOnDemandCapacityUnits : 20

MaximumCoreCapacityUnits : 20

Mettre à l'échelle entre 1 et 20 instances ou unités de flotte d'instances sur les nœuds principaux en utilisant le type À la demande. Aucune mise à l'échelle sur les nœuds de tâches.

Flottes d'instances

Principal : 1 à la demande

De tâche : 1 à la demande et 1Spot

UnitType: InstanceFleetUnits

MinimumCapacityUnits : 1

MaximumCapacityUnits : 20

MaximumOnDemandCapacityUnits : 20

MaximumCoreCapacityUnits : 20

Scénario 2 : mettre à l'échelle les nœuds de tâches uniquement

Pour mettre à l'échelle les nœuds de tâches uniquement, les paramètres de mise à l'échelle gérée doivent répondre aux exigences suivantes :

  • Le nœud principal maximal doit être égal à la limite minimale.

Les exemples suivants montrent le scénario de mise à l'échelle des nœuds de tâches uniquement.

État initial du cluster Paramètres de dimensionnement Comportement de mise à l'échelle.

Groupes d'instances

Principal : 2 à la demande

De tâche : 1 Spot

UnitType : Instances

MinimumCapacityUnits : 2

MaximumCapacityUnits : 20

MaximumCoreCapacityUnits : 2

Maintenez la stabilité des nœuds principaux à 2 et mettez à l'échelle uniquement les nœuds de tâches entre 0 et 18 instances ou unités de flotte d'instances. La capacité entre les limites minimale et maximale est ajoutée aux nœuds de tâches uniquement.

Flottes d'instances

Principal : 2 à la demande

De tâche : 1 Spot

UnitType: InstanceFleetUnits

MinimumCapacityUnits : 2

MaximumCapacityUnits : 20

MaximumCoreCapacityUnits : 2

Scénario 3 : uniquement les instances à la demande dans le cluster

Pour disposer uniquement d'instances à la demande, votre cluster et les paramètres de mise à l'échelle gérée doivent répondre aux exigences suivantes :

  • La limite à la demande est égale à la limite maximale.

    Lorsque la limite à la demande n'est pas spécifiée, la valeur du paramètre est par défaut la limite maximale. La valeur par défaut indique qu'Amazon EMR met à l'échelle uniquement les instances à la demande.

Si le nœud principal maximal est inférieur à la limite maximale, le paramètre du nœud principal maximal peut être utilisé pour répartir l'allocation de capacité entre le nœud principal et le nœud de tâche.

Pour activer ce scénario dans un cluster composé de groupes d'instances, tous les groupes de nœuds du cluster doivent utiliser le type de marché à la demande lors de la configuration initiale.

Les exemples suivants illustrent le scénario consistant à disposer d'instances à la demande dans l'ensemble du cluster.

État initial du cluster Paramètres de dimensionnement Comportement de mise à l'échelle.

Groupes d'instances

Principal : 1 à la demande

Tâche : 1 à la demande

UnitType : Instances

MinimumCapacityUnits : 1

MaximumCapacityUnits : 20

MaximumOnDemandCapacityUnits : 20

MaximumCoreCapacityUnits : 12

Mettre à l'échelle entre 1 et 12 instances ou unités de flotte d'instances sur les nœuds principaux en utilisant le type À la demande. Augmentez la capacité restante en utilisant À la demande sur les nœuds de tâches. Aucune mise à l'échelle avec les instances Spot.

Flottes d'instances

Principal : 1 à la demande

Tâche : 1 à la demande

UnitType: InstanceFleetUnits

MinimumCapacityUnits : 1

MaximumCapacityUnits : 20

MaximumOnDemandCapacityUnits : 20

MaximumCoreCapacityUnits : 12

Scénario 4 : uniquement les instances Spot du cluster

Pour disposer uniquement d'instances Spot, les paramètres de mise à l'échelle gérée doivent répondre aux exigences suivantes :

  • La limite à la demande est fixée à 0.

Si le nœud principal maximal est inférieur à la limite maximale, le paramètre du nœud principal maximal peut être utilisé pour répartir l'allocation de capacité entre le nœud principal et le nœud de tâche.

Pour activer ce scénario dans un cluster composé de groupes d'instances, le groupe d'instances principal doit utiliser l'option d'achat Spot lors de la configuration initiale. S'il n'y a aucune instance Spot dans le groupe d'instances de tâches, la mise à l'échelle gérée par Amazon EMR crée un groupe de tâches utilisant des instances Spot en cas de besoin.

Les exemples suivants illustrent le scénario consistant à disposer d'instances Spot dans l'ensemble du cluster.

État initial du cluster Paramètres de dimensionnement Comportement de mise à l'échelle.

Groupes d'instances

Principal : 1 Spot

De tâche : 1 Spot

UnitType : Instances

MinimumCapacityUnits : 1

MaximumCapacityUnits : 20

MaximumOnDemandCapacityUnits : 0

Mettre à l'échelle entre 1 et 20 instances ou unités de flotte d'instances sur les nœuds principaux en utilisant Spot. Aucune mise à l'échelle avec le type À la demande.

Flottes d'instances

Principal : 1 Spot

De tâche : 1 Spot

UnitType: InstanceFleetUnits

MinimumCapacityUnits : 1

MaximumCapacityUnits : 20

MaximumOnDemandCapacityUnits : 0

Scénario 5 : mise à l'échelle des instances à la demande sur les nœuds principaux et des instances Spot sur les nœuds de tâches

Pour mettre à l'échelle les instances à la demande sur les nœuds principaux et les instances Spot sur les nœuds de tâches, les paramètres de mise à l'échelle gérée doivent répondre aux exigences suivantes :

  • La limite à la demande doit être égale au nombre maximal de nœuds principaux.

  • La limite à la demande et le nombre maximal de nœuds principaux doivent être inférieurs à la limite maximale.

Pour activer ce scénario dans un cluster composé de groupes d'instances, le groupe de noeud principal doit utiliser l'option d'achat à la demande.

Les exemples suivants illustrent le scénario de mise à l'échelle des instances à la demande sur les nœuds principaux et des instances Spot sur les nœuds de tâches.

État initial du cluster Paramètres de dimensionnement Comportement de mise à l'échelle.

Groupes d'instances

Principal : 1 à la demande

De tâche : 1 à la demande et 1Spot

UnitType : Instances

MinimumCapacityUnits : 1

MaximumCapacityUnits : 20

MaximumOnDemandCapacityUnits : 7

MaximumCoreCapacityUnits : 7

Augmentez à 6 unités à la demande sur le nœud principal, car il existe déjà une unité à la demande sur le nœud de tâche et la limite maximale pour la demande est de 7. Augmentez ensuite à 13 unités Spot sur les nœuds de tâches.

Flottes d'instances

Principal : 1 à la demande

De tâche : 1 à la demande et 1Spot

UnitType: InstanceFleetUnits

MinimumCapacityUnits : 1

MaximumCapacityUnits : 20

MaximumOnDemandCapacityUnits : 7

MaximumCoreCapacityUnits : 7