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 sur EC2 version 7.0, vous pouvez tirer parti d'Advanced Scaling pour contrôler l'utilisation des ressources de votre cluster. Advanced Scaling introduit une échelle d'utilisation et de performances permettant d'ajuster l'utilisation de vos ressources et votre 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 aux accords de niveau de service (SLA), pour lesquelles une exécution rapide est essentielle. Lorsque la valeur de mise à l'échelle est ajustée, la mise à l'échelle gérée interprète votre intention et évolue intelligemment pour optimiser les ressources. Pour plus d'informations sur le dimensionnement géré, voir 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 en définit plusieurs :
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é à une utilisation efficace des ressources. Cela entraîne une augmentation de l'échelle du cluster de manière moins agressive. Cela fonctionne bien dans le cas d'utilisation où des pics de charge de travail se produisent régulièrement et où vous ne voulez pas que les ressources augmentent trop rapidement.
Équilibré [50] — Cela permet d'équilibrer l'utilisation des ressources et les performances au travail. Ce paramètre convient aux charges de travail stables où la plupart des étapes ont un temps d'exécution stable. Il convient également aux charges de travail comportant un mélange d'étapes courtes et longues. Nous vous recommandons de commencer par ce réglage 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 s'achèvent rapidement et atteignent les objectifs de performance. L'optimisation des performances convient aux charges de travail sensibles aux accords de niveau de service (SLA) où une rapidité d'exécution est essentielle.
Note
Les valeurs intermédiaires disponibles constituent un juste milieu entre les stratégies afin d'affiner le comportement Advanced Scaling de votre cluster.
Avantages de la mise à l'échelle avancée
Étant donné que votre environnement et vos exigences varient, tels que l'évolution des volumes de données, les ajustements des objectifs de coûts et les implémentations des SLA, la mise à l'échelle des clusters 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 la taille pour répondre à la demande de ressources de calcul ou la réduire pour économiser des ressources, en fonction de vos habitudes d'utilisation.
Optimisation des coûts améliorée — Vous pouvez choisir une faible valeur d'utilisation en fonction des besoins 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'
[1]utilisation :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
ScalingStrategyetUtilizationPerformanceIndexsont 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'UtilizationPerformanceIndexattribut dans la politique de dimensionnement gérée.Pour revenir à la stratégie de dimensionnement gérée par défaut, exécutez la
put-managed-scaling-policycommande sans inclure lesScalingStrategyattributs 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 mesures 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 selon les 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é 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— Nombre total cumulé de secondes de mémoire consommée par le processeur virtuel, y compris la fenêtre temporelle 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 qui vous permet d'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 mathématiques métriques 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 la section Analyse des données de journal avec CloudWatch Logs Insights dans le guide de l'utilisateur Amazon CloudWatch Logs.
L'image suivante montre ces mesures pour un cluster d'échantillons :
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 adapté aux charges de travail par lots. Pour les charges de travail SQL/data-warehousing et le streaming, nous vous recommandons d'utiliser la stratégie de dimensionnement géré par défaut pour des performances optimales.
Amazon EMR Advanced Scaling n'est pas pris en charge lorsque les configurations d'étiquettes de nœud sont activées dans le cluster. Si les configurations Advanced Scaling et Node Label sont activées ensemble dans un cluster, le comportement de mise à l'échelle serait le même que si le paramètre de dimensionnement géré par défaut était activé.
La stratégie de dimensionnement optimisée en termes de 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ée par défaut. Ce mode donne la priorité à une mise à l'échelle rapide pour répondre aux demandes de ressources, ce qui permet d'achever les tâches plus rapidement. 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 de Advanced Scaling peut ne pas apporter d'avantages supplémentaires. Dans certaines situations, l'activation d'Advanced Scaling peut entraîner une augmentation des coûts car les charges de travail peuvent s'exécuter plus longtemps. Dans ces cas, nous vous 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, car le paramètre passe de l'optimisation des performances [100] à l'optimisation de l'utilisation [1]. Il est toutefois 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.