View a markdown version of this page

Utiliser la mise à l'échelle gérée dans Amazon EMR - 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.

Utiliser la mise à l'échelle gérée dans Amazon EMR

Important

Nous vous recommandons vivement d'utiliser la dernière version d'Amazon EMR (Amazon EMR 7.13.0) pour une mise à l'échelle gérée. Dans certaines versions antérieures, vous pourriez rencontrer des défaillances intermittentes des applications ou des retards dans la mise à l'échelle. Amazon EMR a résolu ce problème dans les versions 5.30.2, 5.31.1, 5.32.1, 5.33.1 et les versions 5.x ultérieures, ainsi que dans les versions 6.1.1, 6.2.1 et 6.3.1 et les versions 6.x ultérieures. Pour de plus amples informations sur les régions et les zones de disponibilité, consultez Disponibilité de la mise à l'échelle gérée.

Présentation de

Avec les versions 5.30.0 et ultérieures d'Amazon EMR (à l'exception d'Amazon EMR 6.0.0), vous pouvez activer la mise à l'échelle gérée par Amazon EMR. La mise à l'échelle gérée vous permet d'augmenter ou diminuer automatiquement le nombre d'instances ou d'unités dans votre cluster en fonction de la charge de travail. Amazon EMR évalue en permanence les métriques de cluster pour prendre des décisions de dimensionnement qui optimisent vos clusters en termes de coût et de vitesse. La mise à l'échelle automatique est disponible pour les clusters composés de groupes d'instances ou de flottes d'instances.

Disponibilité de la mise à l'échelle gérée

  • Dans les cas suivants Régions AWS, la mise à l'échelle gérée par Amazon EMR est disponible avec Amazon EMR 6.14.0 et versions supérieures :

    • Asie-Pacifique (Taipei) (ap-east-2)

    • Asie-Pacifique (Melbourne) (ap-southeast-4)

    • Asie-Pacifique (Malaisie) (ap-southeast-5)

    • Asie-Pacifique (Nouvelle Zélande) (ap-southeast-6)

    • Asie-Pacifique (Thaïlande) (ap-southeast-7)

    • Canada Ouest (Calgary) (ca-west-1)

    • Europe (Espagne) (eu-south-2)

    • Mexique (Centre) (mx-central-1)

  • Dans les cas suivants Régions AWS, la mise à l'échelle gérée par Amazon EMR est disponible avec Amazon EMR 5.30.0 et 6.1.0 et versions supérieures :

    • USA Est (Virginie du Nord) (us-east-1)

    • USA Est (Ohio) (us-east-2)

    • USA Ouest (Oregon) (us-west-2)

    • USA Ouest (Californie du Nord) (us-west-1)

    • Afrique (Le Cap) (af-south-1)

    • Asie-Pacifique (Hong Kong) (ap-east-1)

    • Asie-Pacifique (Mumbai) (ap-south-1)

    • Asie-Pacifique (Hyderabad) (ap-south-2)

    • Asie-Pacifique (Séoul) (ap-northeast-2)

    • Asie-Pacifique (Singapour) (ap-southeast-1)

    • Asie-Pacifique (Sydney) (ap-southeast-2)

    • Asie-Pacifique (Jakarta) (ap-southeast-3)

    • Asie-Pacifique (Tokyo) (ap-northeast-1)

    • Asie-Pacifique (Osaka) (ap-northeast-3)

    • Canada (Centre) (ca-central-1)

    • Amérique du Sud (São Paulo) (sa-east-1)

    • Europe (Francfort) (eu-central-1)

    • Europe (Zurich) (eu-central-2)

    • Europe (Irlande) (eu-west-1)

    • Europe (Londres) (eu-west-2)

    • Europe (Milan) (eu-south-1)

    • Europe (Paris) (eu-west-3)

    • Europe (Stockholm) (eu-north-1)

    • Israël (Tel Aviv) (il-central-1)

    • Moyen-Orient (Émirats arabes unis) (me-central-1)

    • Chine (Beijing) cn-north-1

    • Chine (Ningxia) cn-northwest-1

    • AWS GovCloud (US-East) (us-gov-east-1)

    • AWS GovCloud (US-West) (gouvernement des États-Unis - Ouest - 1)

  • La mise à l'échelle gérée par Amazon EMR fonctionne uniquement avec des applications YARN, telles que Spark, Hadoop, Hive, Flink. Elle ne prend pas en charge les applications non basées sur YARN, telles que Presto et HBase.

Paramètres de mise à l'échelle gérée

Vous devez configurer les paramètres suivants pour la mise à l'échelle gérée. La limite s'applique uniquement aux nœuds principaux et aux nœuds de tâches. Le nœud primaire ne peut pas être mis à l'échelle après la configuration initiale.

  • Minimum (MinimumCapacityUnits) : limite inférieure de la capacité EC2 autorisée dans un cluster. Elle est mesurée par le biais de cœurs ou d'instances d'unités centrales virtuelles (vCPU) pour les groupes d'instances. Elle est mesuré par des unités, par exemple des flottes d'instance.

  • Maximum (MaximumCapacityUnits) : limite supérieure de la capacité EC2 autorisée dans un cluster. Elle est mesurée par le biais de cœurs ou d'instances d'unités centrales virtuelles (vCPU) pour les groupes d'instances. Elle est mesuré par des unités, par exemple des flottes d'instance.

  • On-Demand limit (MaximumOnDemandCapacityUnits) (Facultatif) : limite supérieure de la capacité EC2 autorisée pour On-Demand le type de marché d'un cluster. Si ce paramètre n'est pas spécifié, une valeur par défaut de MaximumCapacityUnits sera utilisée.

    • Ce paramètre est utilisé pour répartir l'allocation de capacité entre On-Demand et les instances Spot. Par exemple, si vous définissez le paramètre minimum sur 2 instances, le paramètre maximum sur 100 instances et la On-Demand limite sur 10 instances, Amazon EMR Managed Scaling s'adapte à 10 On-Demand instances et alloue la capacité restante aux instances Spot. Pour de plus amples informations, veuillez consulter Scénarios d'allocation de nœuds.

  • Nombre maximum de nœuds principaux (MaximumCoreCapacityUnits) (Facultatif) : limite supérieure de la capacité EC2 autorisée pour le type de nœud principal dans un cluster. Si ce paramètre n'est pas spécifié, une valeur par défaut de MaximumCapacityUnits sera utilisée.

    • Ce paramètre est utilisé pour diviser l'allocation de capacité entre les nœuds de base et les nœuds de tâche. Par exemple, si vous définissez le paramètre minimum à 2 instances, le maximum à 100 instances, le nœud principal maximal à 17 instances, la mise à l'échelle gérée par Amazon EMR augmente jusqu'à 17 nœuds principaux et alloue les 83 instances restantes aux nœuds de tâches. Pour de plus amples informations, veuillez consulter Scénarios d'allocation de nœuds.

Pour plus d'informations sur les paramètres de mise à l'échelle gérée, consultez ComputeLimits.

Considérations relatives à la mise à l'échelle gérée par Amazon EMR

  • La mise à l'échelle gérée est prise en charge dans les versions limitées Régions AWS et Amazon EMR. Pour de plus amples informations, veuillez consulter Disponibilité de la mise à l'échelle gérée.

  • Vous devez configurer les paramètres requis pour la mise à l'échelle gérée par Amazon EMR. Pour de plus amples informations, veuillez consulter Paramètres de mise à l'échelle gérée.

  • Pour utiliser la mise à l'échelle gérée, le processus de collecte de mesures doit pouvoir se connecter au point de terminaison d'API public pour une mise à l'échelle gérée dans la passerelle d'API. Si vous utilisez un nom DNS privé avec Amazon Virtual Private Cloud, Managed Scaling ne fonctionnera pas correctement. Pour garantir le bon fonctionnement de la mise à l'échelle gérée, nous vous recommandons de prendre l'une des mesures suivantes :

  • Si vos tâches YARN sont ralenties par intermittence pendant la réduction et que les journaux du gestionnaire de ressources YARN indiquent que la plupart de vos nœuds ont été placés sur liste noire pendant cette période, vous pouvez ajuster le seuil de délai de mise hors service.

    Réduisez le spark.blacklist.decommissioning.timeout d'une heure à une minute pour que le nœud soit disponible et que d'autres conteneurs en attente puissent poursuivre le traitement des tâches.

    Vous devez également définir YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs sur une valeur plus élevée afin de vous assurer qu'Amazon EMR ne force pas la fermeture du nœud alors que la plus longue « tâche Spark » est toujours en cours d'exécution sur le nœud. La valeur par défaut actuelle est de 60 minutes, ce qui signifie que YARN force la fermeture du conteneur au bout de 60 minutes une fois que le nœud entre en état de mise hors service.

    L'exemple de ligne de journal du gestionnaire de ressources YARN suivant montre les nœuds ajoutés à l'état de mise hors service :

    2021-10-20 15:55:26,994 INFO org.apache.hadoop.YARN.server.resourcemanager.DefaultAMSProcessor (IPC Server handler 37 on default port 8030): blacklist are updated in Scheduler.blacklistAdditions: [ip-10-10-27-207.us-west-2.compute.internal, ip-10-10-29-216.us-west-2.compute.internal, ip-10-10-31-13.us-west-2.compute.internal, ... , ip-10-10-30-77.us-west-2.compute.internal], blacklistRemovals: []

    Découvrez plus de détails sur la manière dont Amazon EMR s'intègre à la liste noire YARN lors de la mise hors service des nœuds, sur les cas où des nœuds Amazon EMR peuvent être répertoriés sur la liste de refus et sur la configuration du comportement de mise hors service des nœuds Spark.

  • Pour les charges de travail Spark, la désactivation de Spark Dynamic Resource Allocator (DRA) en modifiant la propriété Spark spark.dynamic Allocation.enabled pour FALSE peut entraîner des problèmes de Managed Scaling, dans lesquels les clusters peuvent être redimensionnés plus que nécessaire pour vos charges de travail (jusqu'au maximum de calcul). Lorsque vous utilisez Managed Scaling pour ces charges de travail, nous vous recommandons de laisser Spark DRA activé, qui est l'état par défaut de cette propriété.

  • Over-utilization des volumes EBS peuvent entraîner des problèmes de Managed Scaling. Nous vous recommandons de maintenir le volume EBS en dessous de 90 % d'utilisation. Pour de plus amples informations, veuillez consulter Options de stockage des instances et comportement dans Amazon EMR.

  • Les CloudWatch métriques Amazon sont essentielles au bon fonctionnement de la mise à l'échelle gérée par Amazon EMR. Nous vous recommandons de suivre de près les CloudWatch statistiques d'Amazon pour vous assurer que les données ne sont pas manquantes. Pour plus d'informations sur la façon dont vous pouvez configurer CloudWatch des alarmes pour détecter les métriques manquantes, consultez la section Utilisation CloudWatch des alarmes Amazon.

  • Les opérations de mise à l'échelle gérées sur des clusters 5.30.0 et 5.30.1 sans Presto installé peuvent provoquer des défaillances d'applications ou empêcher le maintien d'un groupe d'instances ou d'une flotte d'instances uniforme dans l'état ARRESTED, en particulier lorsqu'une opération de réduction est rapidement suivie d'une opération d'augementation.

    Pour contourner le problème, choisissez Presto comme application à installer lorsque vous créez un cluster avec les versions 5.30.0 et 5.30.1 d'Amazon EMR, même si votre travail ne nécessite pas Presto.

  • Lorsque vous définissez le nombre maximal de nœuds principaux et la On-Demand limite pour la mise à l'échelle gérée par Amazon EMR, tenez compte des différences entre les groupes d'instances et les parcs d'instances. Chaque groupe d'instances comprend le même type d'instance et la même option d'achat pour les instances : On-Demand ou Spot. Pour chaque parc d'instances, vous pouvez spécifier jusqu'à cinq types d'instances, qui peuvent être provisionnés en tant qu' On-Demand instances ponctuelles. Pour plus d'informations, consultez Créer un cluster avec des flottes d'instances ou des groupes d'instances uniformes, Options des flottes d'instances et Scénarios d'allocation de nœuds.

  • Avec Amazon EMR 5.30.0 et versions ultérieures, si vous supprimez la règle Autoriser tous les accès sortants par défaut sur 0.0.0.0/ pour le groupe de sécurité principal, vous devez ajouter une règle qui autorise la connectivité TCP sortante à votre groupe de sécurité pour l'accès au service sur le port 9443. Votre groupe de sécurité pour l'accès aux services doit également autoriser le trafic TCP entrant sur le port 9443 à partir du groupe de sécurité principal. Pour plus d'informations sur la configuration des groupes de sécurité, consultez Groupe EMR-managed de sécurité Amazon pour l'instance principale (sous-réseaux privés).

  • Vous pouvez l'utiliser AWS CloudFormation pour configurer la mise à l'échelle gérée par Amazon EMR. Pour plus d'informations, consultez AWS::EMR::Cluster dans le Guide de l'utilisateur AWS CloudFormation .

  • Si vous utilisez des nœuds Spot, pensez à utiliser des étiquettes de nœud pour empêcher Amazon EMR de supprimer des processus applicatifs lorsqu'Amazon EMR supprime des nœuds Spot. Pour plus d'informations sur les libellés des nœuds, consultez la section Nœuds de tâches.

  • L'étiquetage des nœuds n'est pas pris en charge par défaut dans les versions 6.15 ou antérieures d'Amazon EMR. Pour plus d'informations, voir Comprendre les types de nœuds : nœuds principaux, principaux et nœuds de tâches.

  • Si vous utilisez les versions 6.15 ou antérieures d'Amazon EMR, vous ne pouvez attribuer des étiquettes de nœud que par type de nœud, tel que les nœuds principaux et les nœuds de tâches. Toutefois, si vous utilisez la version 7.0 ou supérieure d'Amazon EMR, vous pouvez configurer les libellés des nœuds par type de nœud et par type de marché, par exemple On-Demand et Spot.

  • Si la demande du processus d'application augmente et que la demande de l'exécuteur diminue lorsque vous limitez le processus d'application aux nœuds principaux, vous pouvez rajouter des nœuds principaux et supprimer des nœuds de tâches lors de la même opération de redimensionnement. Pour plus d'informations, voir Comprendre la stratégie et les scénarios d'allocation de nœuds.

  • Amazon EMR n'étiquette pas les nœuds de tâches. Vous ne pouvez donc pas définir les propriétés YARN pour restreindre les processus d'application uniquement pour les nœuds de tâches. Toutefois, si vous souhaitez utiliser des types de marché comme étiquettes de nœud, vous pouvez utiliser les SPOT étiquettes ON_DEMAND ou pour le placement du processus de candidature. Nous ne recommandons pas d'utiliser des nœuds Spot pour les processus principaux de l'application.

  • Lorsque vous utilisez des étiquettes de nœuds, le nombre total d'unités en cours d'exécution dans le cluster peut temporairement dépasser le calcul maximal défini dans votre politique de dimensionnement gérée pendant qu'Amazon EMR met hors service certaines de vos instances. Le total des unités demandées restera toujours égal ou inférieur au calcul maximal de votre police.

  • La mise à l'échelle gérée ne prend en charge que les étiquettes de nœud SPOT et/ou ON_DEMAND CORE etTASK. Les étiquettes de nœud personnalisées ne sont pas prises en charge.

  • Amazon EMR crée des étiquettes de nœud lors de la création du cluster et du provisionnement des ressources. Amazon EMR ne prend pas en charge l'ajout d'étiquettes de nœud lorsque vous reconfigurez le cluster. Vous ne pouvez pas non plus modifier les étiquettes des nœuds lors de la configuration de la mise à l'échelle gérée après le lancement du cluster.

  • Managed Scaling fait évoluer les nœuds principaux et les nœuds de tâches indépendamment en fonction du processus applicatif et de la demande de l'exécuteur. Pour éviter les problèmes de perte de données HDFS lors de la réduction de la taille du cœur, suivez les pratiques standard pour les nœuds principaux. Pour en savoir plus sur les meilleures pratiques concernant les nœuds principaux et la réplication HDFS, consultez la section Considérations et meilleures pratiques.

  • Vous ne pouvez pas placer à la fois le processus d'application et les exécuteurs sur le ON_DEMAND nœud core ou uniquement. Si vous souhaitez ajouter à la fois le processus d'application et les exécuteurs sur l'un des nœuds, n'utilisez pas la yarn.node-labels.am.default-node-label-expression configuration.

    Par exemple, pour placer à la fois le processus d'application et les exécuteurs dans ON_DEMAND des nœuds, définissez max compute sur le même que le maximum du ON_DEMAND nœud. Supprimez également la yarn.node-labels.am.default-node-label-expression configuration.

    Pour ajouter à la fois le processus d'application et les exécuteurs sur core les nœuds, supprimez la yarn.node-labels.am.default-node-label-expression configuration.

  • Lorsque vous utilisez la mise à l'échelle gérée avec des étiquettes de nœuds, définissez la propriété yarn.scheduler.capacity.maximum-am-resource-percent: 1 si vous prévoyez d'exécuter plusieurs applications en parallèle. Cela garantit que les processus de votre application utilisent pleinement les ON_DEMAND nœuds CORE ou disponibles.

  • Si vous utilisez une mise à l'échelle gérée avec des étiquettes de nœud, définissez la propriété yarn.resourcemanager.decommissioning.timeout sur une valeur plus longue que l'application la plus ancienne de votre cluster. Cela réduit le risque que la mise à l'échelle gérée par Amazon EMR doive replanifier vos applications vers une remise en service ou des nœuds. CORE ON_DEMAND

  • Pour réduire le risque de défaillances des applications dues à la perte de données issues du shuffle, Amazon EMR collecte des métriques à partir du cluster afin de déterminer les nœuds qui contiennent des données de shuffle transitoires existantes datant de l'étape en cours et de l'étape précédente. Dans de rares cas, les métriques peuvent continuer à signaler des données obsolètes pour des applications déjà terminées ou résiliées. Cela peut avoir un impact sur la réduction rapide des instances de votre cluster. Pour les clusters contenant une grande quantité de données mélangées, pensez à utiliser les versions 6.13 et ultérieures d'EMR.

Historique des fonctionnalités

Ce tableau répertorie les mises à jour apportées à la fonctionnalité de mise à l'échelle gérée par Amazon EMR.

Date de publication Capacité Versions Amazon EMR
20 novembre 2024 La mise à l'échelle gérée est disponible dans les régions il-central-1 d'Israël (Tel Aviv), me-central-1 du Moyen-Orient (Émirats arabes unis) et de ap-northeast-3 l'Asie-Pacifique (Osaka). 5.30.0 et 6.1.0 et versions supérieures
15 novembre 2024 La mise à l'échelle gérée est disponible dans la région eu-central-2 Europe (Zurich). 5.30.0 et 6.1.0 et versions supérieures
20 août 2024 Les étiquettes de nœud sont désormais disponibles dans le dimensionnement géré. Vous pouvez donc étiqueter vos instances en fonction du type de marché ou du type de nœud afin d'améliorer le dimensionnement automatique. 7.2.0 et versions supérieures
31 mars 2024 La mise à l'échelle gérée est disponible dans la région ap-south-2 Asie-Pacifique (Hyderabad). 6.14.0 et ultérieures
13 février 2024 La mise à l'échelle gérée est disponible dans la région eu-south-2 Europe (Espagne). 6.14.0 et ultérieures
10 octobre 2023 La mise à l'échelle gérée est disponible dans la Région Asie-Pacifique (Jakarta) ap-southeast-3. 6.14.0 et ultérieures
28 juillet 2023 Mise à l'échelle gérée améliorée pour passer à un autre groupe d'instances de tâches lors de l'augmentation quand Amazon EMR connaît un retard dans l'augmentation avec le groupe d'instances actuel. 5.34.0 et ultérieures, 6.4.0 et ultérieures
16 juin 2023 Mise à l'échelle gérée améliorée pour prendre en compte les nœuds exécutant le noeud principal de l'application master afin que ces nœuds ne soient pas réduits. Pour de plus amples informations, veuillez consulter Comprendre la stratégie et les scénarios d'allocation de nœuds Amazon EMR. 5.34.0 et ultérieures, 6.4.0 et ultérieures
21 mars 2022 Ajout de la fonction de reconnaissance des données de réorganisation Spark utilisée lors de la réduction de la taille des clusters. Pour les clusters Amazon EMR dotés d'Apache Spark et de la fonctionnalité de mise à l'échelle gérée activée, Amazon EMR surveille en permanence les exécuteurs Spark et les emplacements de données de réorganisation intermédiaires. À l'aide de ces informations, Amazon EMR réduit uniquement les instances sous-utilisées qui ne contiennent pas de données de réorganisation utilisées activement. Cela évite de recalculer les données de réorganisation perdues, ce qui contribue à réduire les coûts et à améliorer les performances au travail. Pour plus d'informations, consultez le Guide de programmation de Spark. 5.34.0 et ultérieures, 6.4.0 et ultérieures