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.
Mise à l'échelle avancée pour Amazon EMR
À partir d'Amazon EMR EC2 version 7.0, vous pouvez utiliser Advanced Scaling pour contrôler l'utilisation des ressources de votre cluster. La mise à l'échelle avancée introduit une échelle d'utilisation/performance pour ajuster l'utilisation des ressources et le niveau de performance en fonction des besoins de votre entreprise. La valeur que vous définissez détermine si votre cluster est davantage axé sur la conservation des ressources ou sur la mise à l'échelle pour gérer les charges de travail sensibles service-level-agreement (SLA), où la rapidité d'exécution est essentielle. Lorsque la valeur d'échelle est ajustée, le dimensionnement géré interprète votre intention et redimensionne intelligemment pour optimiser les ressources. Pour plus d'informations sur le dimensionnement géré, consultez Configurer le dimensionnement géré pour Amazon EMR.
Paramètres de mise à l'échelle avancés
La valeur que vous définissez pour Advanced Scaling optimise votre cluster en fonction de vos besoins. Les valeurs sont comprises entre 1 et 100. Les valeurs possibles sont 1, 25, 50, 75 et 100. Si vous définissez l'index sur des valeurs autres que celles-ci, cela entraîne une erreur de validation.
Les valeurs d'échelle correspondent aux stratégies d'utilisation des ressources. La liste suivante définit plusieurs d'entre eux :
Utilisation optimisée [1] — Ce paramètre empêche le surprovisionnement des ressources. Utilisez une valeur faible lorsque vous souhaitez réduire les coûts et donner la priorité à l'utilisation efficace des ressources. Cela permet au cluster de se développer de manière moins agressive. Cela fonctionne bien lorsque des pics de charge de travail se produisent régulièrement et que vous ne voulez pas que les ressources augmentent trop rapidement.
Équilibré [50] — Cela équilibre l'utilisation des ressources et le rendement au travail. Ce paramètre convient aux charges de travail stables où le temps d'exécution de la plupart des stages est stable. Il convient également aux charges de travail comportant un mélange d'étapes de courte et de longue durée. Nous vous recommandons de commencer par ce paramètre si vous ne savez pas lequel choisir.
Performances optimisées [100] — Cette stratégie donne la priorité aux performances. Le cluster évolue de manière agressive pour garantir que les tâches soient achevées rapidement et atteignent les objectifs de performance. L'optimisation des performances convient aux charges de travail sensibles service-level-agreement (SLA) pour lesquelles un temps d'exécution rapide est essentiel.
Note
Les valeurs intermédiaires disponibles fournissent un juste milieu entre les stratégies afin d'affiner le comportement de mise à l'échelle avancée de votre cluster.
Avantages de la mise à l'échelle avancée
Compte tenu de la variabilité de votre environnement et de vos exigences, telles que l'évolution des volumes de données, les ajustements des objectifs de coûts et la mise en œuvre des SLA, le dimensionnement du cluster peut vous aider à ajuster la configuration de votre cluster pour atteindre vos objectifs. Les principaux avantages sont les suivants :
Contrôle granulaire amélioré — L'introduction du paramètre de performance d'utilisation vous permet d'ajuster facilement le comportement de dimensionnement de votre cluster en fonction de vos besoins. Vous pouvez augmenter le volume pour répondre à la demande de ressources informatiques ou le réduire pour économiser des ressources, en fonction de vos habitudes d'utilisation.
Optimisation améliorée des coûts — Vous pouvez choisir une faible valeur d'utilisation en fonction des exigences afin d'atteindre plus facilement vos objectifs de coûts.
Débuter avec l'optimisation
Installation et configuration
Suivez ces étapes pour définir l'indice de performance et optimiser votre stratégie de mise à l'échelle.
La commande suivante met à jour un cluster existant avec la stratégie de dimensionnement optimisée pour l'utilisation
[1]
:aws emr put-managed-scaling-policy --cluster-id '
cluster-id
' \ --managed-scaling-policy '{ "ComputeLimits": { "UnitType": "Instances", "MinimumCapacityUnits": 1, "MaximumCapacityUnits": 2, "MaximumOnDemandCapacityUnits": 2, "MaximumCoreCapacityUnits": 2 }, "ScalingStrategy": "ADVANCED", "UtilizationPerformanceIndex": "1" }' \ --region "region-name
"Les attributs
ScalingStrategy
et les attributsUtilizationPerformanceIndex
sont nouveaux et pertinents pour l'optimisation de la mise à l'échelle. Vous pouvez sélectionner différentes stratégies de dimensionnement en définissant les valeurs correspondantes (1, 25, 50, 75 et 100) pour l'UtilizationPerformanceIndex
attribut dans la politique de dimensionnement géré.Pour revenir à la stratégie de dimensionnement géré par défaut, exécutez la
put-managed-scaling-policy
commande sans inclure lesScalingStrategy
attributs et.UtilizationPerformanceIndex
(C'est facultatif.) Cet exemple montre comment procéder :aws emr put-managed-scaling-policy \ --cluster-id '
cluster-id
' \ --managed-scaling-policy '{"ComputeLimits":{"UnitType":"Instances","MinimumCapacityUnits":1,"MaximumCapacityUnits":2,"MaximumOnDemandCapacityUnits":2,"MaximumCoreCapacityUnits":2}}' \ --region "region-name
"
Utilisation de métriques de surveillance pour suivre l'utilisation des clusters
À partir de la version 7.3.0 d'EMR, Amazon EMR publie quatre nouvelles mesures relatives à la mémoire et au processeur virtuel. Vous pouvez les utiliser pour mesurer l'utilisation des clusters dans le cadre de stratégies de dimensionnement. Ces métriques sont disponibles pour tous les cas d'utilisation, mais vous pouvez utiliser les informations fournies ici pour surveiller Advanced Scaling.
Les indicateurs utiles disponibles sont les suivants :
YarnContainersUsedMemoryGBSeconds— Quantité de mémoire consommée par les applications gérées par YARN.
YarnContainersTotalMemoryGBSeconds— Capacité de mémoire totale allouée à YARN au sein du cluster.
YarnNodesUsedVCPUSeconds— Nombre total de secondes VCPU pour chaque application gérée par YARN.
YarnNodesTotalVCPUSeconds— Total cumulé des secondes du processeur virtuel pour la mémoire consommée, y compris la période pendant laquelle le fil n'est pas prêt.
Vous pouvez analyser les statistiques relatives aux ressources à l'aide de Amazon CloudWatch Logs Insights. Les fonctionnalités incluent un langage de requête spécialement conçu pour vous aider à extraire des métriques spécifiques à l'utilisation et à la mise à l'échelle des ressources.
La requête suivante, que vous pouvez exécuter dans la Amazon CloudWatch console, utilise des mesures mathématiques pour calculer l'utilisation moyenne de la mémoire (e1) en divisant la somme cumulée de la mémoire consommée (e2) par la somme cumulée de la mémoire totale (e3) :
{ "metrics": [ [ { "expression": "e2/e3", "label": "Average Mem Utilization", "id": "e1", "yAxis": "right" } ], [ { "expression": "RUNNING_SUM(m1)", "label": "RunningTotal-YarnContainersUsedMemoryGBSeconds", "id": "e2", "visible": false } ], [ { "expression": "RUNNING_SUM(m2)", "label": "RunningTotal-YarnContainersTotalMemoryGBSeconds", "id": "e3", "visible": false } ], [ "AWS_EMR_ManagedResize", "YarnContainersUsedMemoryGBSeconds", "ACCOUNT_ID", "793684541905", "COMPONENT", "ManagerService", "JOB_FLOW_ID", "cluster-id", { "id": "m1", "label": "YarnContainersUsedMemoryGBSeconds" } ], [ ".", "YarnContainersTotalMemoryGBSeconds", ".", ".", ".", ".", ".", ".", { "id": "m2", "label": "YarnContainersTotalMemoryGBSeconds" } ] ], "view": "timeSeries", "stacked": false, "region": "region", "period": 60, "stat": "Sum", "title": "Memory Utilization" }
Pour interroger les journaux, vous pouvez sélectionner CloudWatch dans la AWS console. Pour plus d'informations sur la rédaction de requêtes pour CloudWatch, consultez Analyser les données des CloudWatch journaux avec Logs Insights dans le guide de l'utilisateur Amazon CloudWatch Logs.
L'image suivante montre ces mesures pour un échantillon de cluster :

Considérations et restrictions
L'efficacité des stratégies de dimensionnement peut varier en fonction des caractéristiques uniques de votre charge de travail et de la configuration de votre cluster. Nous vous encourageons à tester le paramètre de mise à l'échelle afin de déterminer une valeur d'indice optimale pour votre cas d'utilisation.
Amazon EMR Advanced Scaling est particulièrement bien adapté aux charges de travail par lots. Pour les charges de travail SQL/Data-Warehousing et streaming, nous recommandons d'utiliser la stratégie de dimensionnement géré par défaut pour des performances optimales.
La stratégie de dimensionnement optimisée pour les performances permet une exécution plus rapide des tâches en maintenant des ressources de calcul élevées pendant une période plus longue que la stratégie de dimensionnement géré par défaut. Ce mode donne la priorité à une mise à l'échelle rapide pour répondre aux demandes de ressources, ce qui permet d'accélérer l'exécution des tâches. Cela peut entraîner des coûts plus élevés par rapport à la stratégie par défaut.
Dans les cas où le cluster est déjà optimisé et pleinement utilisé, l'activation d'Advanced Scaling peut ne pas apporter d'avantages supplémentaires. Dans certains cas, l'activation d'Advanced Scaling peut entraîner une augmentation des coûts car les charges de travail peuvent s'allonger. Dans ces cas, nous recommandons d'utiliser la stratégie de dimensionnement géré par défaut pour garantir une allocation des ressources et une rentabilité optimales.
Dans le contexte de la mise à l'échelle gérée, l'accent est mis sur l'utilisation des ressources plutôt que sur le temps d'exécution, à mesure que le paramètre passe d'une optimisation des performances [100] à une optimisation de l'utilisation [1]. Cependant, il est important de noter que les résultats peuvent varier en fonction de la nature de la charge de travail et de la topologie du cluster. Pour garantir des résultats optimaux pour votre cas d'utilisation, nous vous recommandons vivement de tester les stratégies de dimensionnement avec vos charges de travail afin de déterminer le paramètre le plus approprié.
N'PerformanceUtilizationIndexaccepte que les valeurs suivantes :
1
25
50
75
100
Toute autre valeur soumise entraîne une erreur de validation.