Lorsque vos charges de travail fluctuent, activez la mise à l'échelle automatique et configurez des règles de scaling afin qu'E-MapReduce (EMR) ajoute ou supprime automatiquement des nœuds de calcul. Cette approche garantit l'exécution de vos tâches tout en réduisant les coûts.
Prérequis
Un cluster Hadoop doit être créé. Pour plus d'informations, consultez la rubrique Créer un cluster.
Notes d'utilisation
Vous ne pouvez spécifier les types d'instance pour les nœuds à mettre à l'échelle que lorsque la mise à l'échelle automatique est désactivée. Pour modifier les types d'instance, désactivez la mise à l'échelle automatique, mettez à jour les spécifications, puis réactivez-la.
Le système répertorie les types d'instance correspondant aux spécifications vCPU et mémoire sélectionnées. Sélectionnez les types d'instance souhaités pour permettre au cluster de se mettre à l'échelle avec ces spécifications.
Afin d'éviter les échecs de mise à l'échelle dus à une insuffisance de stock ECS, sélectionnez jusqu'à trois types d'instance ECS.
Que vous choisissiez un disque ultra ou un SSD standard, la taille minimale du disque de données est de 40 Go.
La mise à l'échelle basée sur la charge gère dynamiquement les groupes de mise à l'échelle automatique en s'appuyant sur CloudMonitor. Après avoir configuré une règle de scaling, le système crée automatiquement une règle d'alarme correspondante dans CloudMonitor. Pour garantir le bon fonctionnement de la mise à l'échelle automatique EMR, ne modifiez, ne supprimez et ne désactivez pas ces règles d'alarme générées par le système.
Procédure
-
Accédez à la page de mise à l'échelle automatique.
Connectez-vous à la console EMR on ECS.
Dans la barre de navigation supérieure, sélectionnez une région et un groupe de ressources selon vos besoins.
Sur la page EMR on ECS, cliquez sur l'ID du cluster cible.
Cliquez sur l'onglet Auto Scaling.
-
Créez un groupe de mise à l'échelle automatique.
-
Sous l'onglet Configure Scaling, cliquez sur Create Auto Scaling Group.
RemarqueVous ne pouvez gérer et configurer les groupes de mise à l'échelle automatique que depuis la page Auto Scaling. Il est impossible de les gérer depuis la page de gestion des nœuds.
Dans la boîte de dialogue Add Auto Scaling Group, saisissez un Node group name et cliquez sur OK.
-
Sous l'onglet Configure Scaling, localisez le groupe de nœuds cible et cliquez sur Configure Rule dans la colonne Actions.
-
Dans le panneau Configure Auto Scaling, configurez les paramètres de la section Basic Information.
Paramètre
Description
Maximum Number of Instances
Nombre maximal de nœuds de calcul dans le groupe de mise à l'échelle automatique. Le groupe ne se met pas à l'échelle au-delà de cette limite, même si une règle de scaling est déclenchée. La valeur maximale est 1 000.
Minimum Number of Instances
Nombre minimal de nœuds de calcul dans le groupe de mise à l'échelle automatique. Le groupe ne descend pas en dessous de ce nombre.
Par exemple, si une règle d'ajout d'un nœud est déclenchée alors que le nombre actuel est zéro, mais que le minimum est défini à 3, le système ajoute trois nœuds pour respecter l'exigence minimale.
Graceful Shutdown
Vous pouvez définir un délai d'attente pour retirer un nœud de calcul exécutant des tâches YARN. Un nœud est retiré lorsqu'il n'exécute plus de tâches ou lorsqu'une tâche en cours dépasse le délai d'attente. Le délai d'attente maximal est de 3 600 secondes.
Important-
Lorsque vous activez l'arrêt gracieux, commencez par modifier la valeur du paramètre YARN yarn.resourcemanager.nodes.exclude-path en /etc/ecm/hadoop-conf/yarn-exclude.xml.
-
Après avoir modifié le délai d'attente, redémarrez YARN ResourceManager pendant les heures creuses pour que la modification prenne effet.
-
-
Dans la section des instances du panneau Configure Auto Scaling, sélectionnez un mode d'instance, une méthode de facturation et des types d'instance.
-
Single Billing Method
Le système identifie les types d'instance correspondant à vos spécifications vCPU et mémoire et les affiche dans la section Type d'instance. Sélectionnez un ou plusieurs types d'instance pour permettre la mise à l'échelle du cluster.
-
Pay-as-you-go
L'ordre dans lequel vous sélectionnez les types d'instance détermine leur priorité de provisionnement. Le prix horaire de chaque instance, incluant à la fois les prix des instances EMR et ECS, est affiché.
-
Preemptible Instance
ImportantSi vos tâches ont des exigences SLA élevées, utilisez ce type d'instance avec prudence. Les instances spot peuvent être récupérées en cas d'échec des enchères, ce qui risque d'interrompre vos tâches.
L'ordre de sélection des types d'instance détermine leur priorité de provisionnement. Le prix horaire au paiement à l'utilisation est affiché pour chaque type d'instance. Vous pouvez également définir un prix horaire maximal (votre enchère) pour chaque type d'instance. Une instance n'est lancée que si son prix actuel du marché est inférieur ou égal à votre enchère. Pour plus d'informations, consultez la rubrique Qu'est-ce qu'une instance spot ?.
-
-
Cost Optimization Mode
Dans ce mode, vous pouvez créer une politique de contrôle des coûts pour équilibrer coût et stabilité.
Paramètre
Description
Minimum Pay-As-You-Go Nodes in Auto Scaling Group
Nombre minimal d'instances au paiement à l'utilisation dans le groupe de mise à l'échelle automatique. Si le nombre actuel est inférieur à cette valeur, les nouvelles instances sont provisionnées en premier lieu au paiement à l'utilisation.
Percentage of Pay-As-You-Go Nodes
Une fois le nombre minimal d'instances au paiement à l'utilisation atteint, ce pourcentage détermine la proportion d'instances supplémentaires à provisionner au paiement à l'utilisation.
Lowest-Cost Instance Types
Nombre de types d'instance les moins coûteux à utiliser. Lors de la création d'instances spot, le système les répartit uniformément entre les types d'instance spécifiés. La valeur maximale est 3.
Replace Preemptible Instances
Indique s'il faut activer la compensation pour les instances spot. Si cette option est activée, le système remplace proactivement une instance spot environ 5 minutes avant sa récupération.
Si vous ne spécifiez pas les paramètres Minimum Pay-As-You-Go Nodes in Auto Scaling Group, Percentage of Pay-As-You-Go Nodes et Lowest-Cost Instance Types, un groupe de mise à l'échelle optimisé des coûts standard est créé. Sinon, un groupe de mise à l'échelle optimisé des coûts avec une politique d'instances mixtes est créé. Les deux types sont entièrement compatibles au niveau des opérations API et des fonctionnalités.
Pour un groupe de mise à l'échelle optimisé des coûts avec une politique d'instances mixtes, vous pouvez reproduire le comportement d'un groupe optimisé des coûts standard. Par exemple :
-
Pour créer uniquement des instances au paiement à l'utilisation :
Définissez Minimum Pay-As-You-Go Nodes in Auto Scaling Group sur 0, Percentage of Pay-As-You-Go Nodes sur 100 et Lowest-Cost Instance Types sur 1.
-
Pour prioriser la création d'instances spot :
Définissez Minimum Pay-As-You-Go Nodes in Auto Scaling Group sur 0, Percentage of Pay-As-You-Go Nodes sur 0 et Lowest-Cost Instance Types sur 1.
-
-
-
Dans la section Configure Auto Scaling du panneau Trigger Mode, sélectionnez un mode de déclenchement et configurez ses règles.
-
Time-based Scaling : Si les charges de travail de votre cluster Hadoop présentent des pics et des creux prévisibles, planifiez des activités de mise à l'échelle pour ajouter ou supprimer des nœuds de calcul à des heures fixes, garantissant ainsi l'exécution des tâches tout en réalisant des économies.
Les règles de scaling incluent des règles de montée en puissance (scale-out) et de réduction (scale-in). Cette rubrique utilise une règle de montée en puissance comme exemple. Si vous désactivez la mise à l'échelle automatique, toutes les règles sont supprimées. Vous devrez les reconfigurer lors de la réactivation de la mise à l'échelle automatique.
Paramètre
Description
Rule Name
Les noms des règles de scaling, y compris les règles de montée en puissance et de réduction, doivent être uniques au sein d'un cluster.
Execution Rule
-
Execute Repeatedly : Planifiez une activité de mise à l'échelle pour qu'elle s'exécute à une heure spécifique quotidiennement, hebdomadairement ou mensuellement.
-
Execute Only Once : L'activité de mise à l'échelle ne s'exécute qu'une seule fois à l'heure spécifiée.
Execution Time
Heure d'exécution de la règle.
Rule Expiration Time
Date et heure d'expiration de la règle.
Retry timeout (seconds)
Une activité de mise à l'échelle planifiée peut échouer à l'heure prévue. Si vous définissez un délai de nouvelle tentative, le système réessaie toutes les 30 secondes pendant cette période jusqu'à ce que l'opération réussisse. La valeur varie de 0 à 21 600 secondes.
Par exemple, supposons que l'activité de mise à l'échelle A soit planifiée, mais qu'une autre activité B soit déjà en cours ou dans sa période de refroidissement. Dans ce cas, l'activité A ne peut pas être exécutée. Le système réessaie l'activité A toutes les 30 secondes pendant la période de nouvelle tentative spécifiée. Dès que les conditions sont remplies, le cluster effectue immédiatement l'activité de mise à l'échelle.
Number of Adjusted Instances
Nombre de nœuds de calcul à ajouter chaque fois que la règle est déclenchée.
Cooldown Time (s)
Intervalle après la fin d'une activité de mise à l'échelle pendant lequel aucune autre activité de mise à l'échelle ne peut être déclenchée.
-
-
Load-based Scaling : Si vous ne pouvez pas prédire avec précision les pics et les creux de vos charges de travail Big Data, utilisez une politique de mise à l'échelle basée sur la charge.
Les règles de scaling incluent des règles de montée en puissance et de réduction. Cette rubrique utilise une règle de montée en puissance comme exemple. Si vous désactivez la mise à l'échelle automatique, toutes les règles sont supprimées. Vous devrez les reconfigurer lors de la réactivation de la mise à l'échelle automatique. Lorsque vous changez de politique de mise à l'échelle, par exemple en passant de la mise à l'échelle basée sur la charge à celle basée sur le temps, les règles de la politique précédente deviennent inactives. Cependant, les nœuds ajoutés par ces règles sont conservés et ne sont pas libérés.
Paramètre
Description
Rule Name
Les noms des règles de scaling, y compris les règles de montée en puissance et de réduction, doivent être uniques au sein d'un cluster.
Cluster Load Metrics
Les métriques sont obtenues à partir de YARN. Pour plus d'informations, consultez la documentation officielle Hadoop.
Pour le mappage entre les métriques de mise à l'échelle automatique E-MapReduce et les services YARN, consultez la section Mappage des métriques de mise à l'échelle automatique EMR vers YARN.
Statistical Period
Le système vérifie si la métrique de charge du cluster sélectionnée, agrégée selon la règle statistique spécifiée (par exemple, Moyenne, Maximum ou Minimum) sur une période statistique, atteint le seuil. Chaque atteinte du seuil compte comme un déclenchement.
Statistical Rule
Condition Repetition Threshold
Nombre de fois consécutives où la métrique doit atteindre le seuil avant qu'une activité de mise à l'échelle ne soit déclenchée.
Adjustment value
Nombre de nœuds de calcul à ajouter chaque fois que la règle est déclenchée.
Cooldown Time (s)
Période suivant la fin d'une activité de mise à l'échelle pendant laquelle d'autres activités de mise à l'échelle ne peuvent pas être déclenchées. Le système ignore les déclencheurs pendant ce temps et attend le prochain déclencheur valide après la fin du refroidissement.
-
-
Cliquez sur Save.
Activez la mise à l'échelle automatique selon vos besoins. Pour plus d'informations, consultez la rubrique Activer ou désactiver la mise à l'échelle automatique (clusters Hadoop uniquement).
Mappage des métriques de mise à l'échelle automatique EMR vers YARN
|
Métrique de mise à l'échelle automatique |
Service |
Description |
|
YARN.AvailableVCores |
YARN |
Nombre de cœurs virtuels disponibles. |
|
YARN.PendingVCores |
YARN |
Nombre de cœurs virtuels en attente d'allocation. |
|
YARN.AllocatedVCores |
YARN |
Nombre de cœurs virtuels alloués. |
|
YARN.ReservedVCores |
YARN |
Nombre de cœurs virtuels réservés. |
|
YARN.AvailableMemory |
YARN |
Quantité de mémoire disponible, en Mo. |
|
YARN.PendingMemory |
YARN |
Quantité de mémoire en attente d'allocation, en Mo. |
|
YARN.AllocatedMemory |
YARN |
Quantité de mémoire allouée, en Mo. |
|
YARN.ReservedMemory |
YARN |
Quantité de mémoire réservée, en Mo. |
|
YARN.AppsRunning |
YARN |
Nombre d'applications en cours d'exécution. |
|
YARN.AppsPending |
YARN |
Nombre d'applications en attente. |
|
YARN.AppsKilled |
YARN |
Nombre d'applications arrêtées. |
|
YARN.AppsFailed |
YARN |
Nombre d'applications ayant échoué. |
|
YARN.AppsCompleted |
YARN |
Nombre d'applications terminées. |
|
YARN.AppsSubmitted |
YARN |
Nombre d'applications soumises. |
|
YARN.AllocatedContainers |
YARN |
Nombre de conteneurs alloués. |
|
YARN.PendingContainers |
YARN |
Nombre de conteneurs en attente d'allocation. |
|
YARN.ReservedContainers |
YARN |
Nombre de conteneurs réservés. |
|
YARN.MemoryAvailablePercentage |
YARN |
Pourcentage de mémoire disponible |
|
YARN.ContainerPendingRatio |
YARN |
Rapport entre les conteneurs en attente et les conteneurs alloués |