Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Erweiterte Skalierung für Amazon EMR
Ab Amazon EMR auf EC2 Version 7.0 können Sie Advanced Scaling nutzen, um die Ressourcenauslastung Ihres Clusters zu steuern. Advanced Scaling führt eine Skala für Auslastung und Leistung ein, mit der Sie Ihre Ressourcenauslastung und Ihr Leistungsniveau an Ihre Geschäftsanforderungen anpassen können. Der von Ihnen festgelegte Wert bestimmt, ob Ihr Cluster stärker auf Ressourcenschonung oder auf die Skalierung zur Bewältigung von SLA-sensiblen Workloads (Service Level Agreement) gewichtet wird, bei denen eine schnelle Fertigstellung entscheidend ist. Wenn der Skalierungswert angepasst wird, interpretiert die verwaltete Skalierung Ihre Absicht und skaliert intelligent, um die Ressourcen zu optimieren. Weitere Informationen zur verwalteten Skalierung finden Sie unter Managed Scaling für Amazon EMR konfigurieren.
Erweiterte Skalierungseinstellungen
Der Wert, den Sie für Advanced Scaling festgelegt haben, optimiert Ihren Cluster gemäß Ihren Anforderungen. Die Werte reichen von 1 bis 100. Mögliche Werte sind 1, 25, 50, 75 und 100. Wenn Sie den Index auf andere Werte als diese setzen, führt dies zu einem Validierungsfehler.
Die Skalierung von Werten entspricht Strategien zur Ressourcennutzung. In der folgenden Liste werden mehrere davon definiert:
Auslastung optimiert [1] — Diese Einstellung verhindert, dass Ressourcen überlastet werden. Verwenden Sie einen niedrigen Wert, wenn Sie die Kosten niedrig halten und einer effizienten Ressourcennutzung Priorität einräumen möchten. Dadurch wird der Cluster weniger aggressiv skaliert. Dies eignet sich gut für den Anwendungsfall, in dem regelmäßig Arbeitslastspitzen auftreten und Sie nicht möchten, dass die Ressourcen zu schnell hochgefahren werden.
Ausgewogen [50] — Dies sorgt für ein ausgewogenes Verhältnis zwischen Ressourcenauslastung und Arbeitsleistung. Diese Einstellung eignet sich für konstante Workloads, bei denen die meisten Phasen eine stabile Laufzeit haben. Sie eignet sich auch für Workloads mit einer Mischung aus kurzen und langen Phasen. Wir empfehlen, mit dieser Einstellung zu beginnen, wenn Sie sich nicht sicher sind, welche Sie wählen sollen.
Leistungsoptimiert [100] — Bei dieser Strategie wird Leistung priorisiert. Der Cluster wird aggressiv skaliert, um sicherzustellen, dass Jobs schnell abgeschlossen und die Leistungsziele erreicht werden. Die leistungsoptimierte Leistung eignet sich für Workloads, bei denen es auf Service-Level-Agreements (SLA) ankommt und bei denen eine schnelle Ausführung entscheidend ist.
Anmerkung
Die verfügbaren Zwischenwerte bilden einen Mittelweg zwischen Strategien zur Feinabstimmung des Advanced Scaling-Verhaltens Ihres Clusters.
Vorteile von Advanced Scaling
Da Ihre Umgebung und Anforderungen unterschiedlich sind, wie z. B. sich ändernde Datenmengen, Anpassungen der Kostenziele und SLA-Implementierungen, kann Ihnen die Clusterskalierung dabei helfen, Ihre Clusterkonfiguration anzupassen, um Ihre Ziele zu erreichen. Zu den wichtigsten Vorteilen gehören:
Verbesserte granulare Steuerung — Mit der Einführung der Einstellung „Auslastung und Leistung“ können Sie das Skalierungsverhalten Ihres Clusters ganz einfach an Ihre Anforderungen anpassen. Sie können je nach Ihren Nutzungsmustern nach oben skalieren, um den Bedarf an Rechenressourcen zu decken, oder nach unten skalieren, um Ressourcen zu sparen.
Verbesserte Kostenoptimierung — Sie können je nach Bedarf einen niedrigen Nutzungswert wählen, um Ihre Kostenziele leichter zu erreichen.
Erste Schritte mit der Optimierung
Einrichtung und Konfiguration
Verwenden Sie diese Schritte, um den Leistungsindex festzulegen und Ihre Skalierungsstrategie zu optimieren.
Mit dem folgenden Befehl wird ein vorhandener Cluster mit der nutzungsoptimierten
[1]Skalierungsstrategie aktualisiert: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"Die Attribute
ScalingStrategyundUtilizationPerformanceIndexsind neu und relevant für die Skalierungsoptimierung. Sie können verschiedene Skalierungsstrategien auswählen, indem Sie die entsprechenden Werte (1, 25, 50, 75 und 100) für dasUtilizationPerformanceIndexAttribut in der Richtlinie für verwaltete Skalierung festlegen.Um zur Standardstrategie für verwaltete Skalierung zurückzukehren, führen Sie den
put-managed-scaling-policyBefehl ohne die Attribute und aus.ScalingStrategyUtilizationPerformanceIndex(Dies ist optional.) Dieses Beispiel zeigt, wie das geht: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"
Verwendung von Überwachungsmetriken zur Nachverfolgung der Cluster-Auslastung
Ab EMR-Version 7.3.0 veröffentlicht Amazon EMR vier neue Metriken zu Arbeitsspeicher und virtueller CPU. Sie können diese verwenden, um die Cluster-Auslastung in verschiedenen Skalierungsstrategien zu messen. Diese Metriken sind für jeden Anwendungsfall verfügbar, aber Sie können die hier bereitgestellten Details zur Überwachung von Advanced Scaling verwenden.
Zu den verfügbaren hilfreichen Metriken gehören:
YarnContainersUsedMemoryGBSeconds— Speichermenge, die von Anwendungen verbraucht wird, die von YARN verwaltet werden.
YarnContainersTotalMemoryGBSeconds— Die gesamte Speicherkapazität, die YARN innerhalb des Clusters zugewiesen wurde.
YarnNodesUsedVCPUSeconds— Gesamtzahl der VCPU-Sekunden für jede von YARN verwaltete Anwendung.
YarnNodesTotalVCPUSeconds— Aggregierte Gesamtzahl der VCPU-Sekunden für den verbrauchten Speicher, einschließlich des Zeitfensters, in dem das Garn nicht bereit ist.
Sie können Ressourcenmetriken mithilfe von Amazon CloudWatch Logs Insights analysieren. Zu den Funktionen gehört eine speziell entwickelte Abfragesprache, mit der Sie Metriken extrahieren können, die für die Ressourcennutzung und Skalierung spezifisch sind.
Die folgende Abfrage, die Sie in der Amazon CloudWatch Konsole ausführen können, berechnet mithilfe mathematischer Kennzahlen die durchschnittliche Speicherauslastung (e1), indem die laufende Summe des verbrauchten Speichers (e2) durch die laufende Summe des Gesamtspeichers (e3) dividiert wird:
{ "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" }
Um Protokolle abzufragen, können Sie CloudWatch in der AWS Konsole Folgendes auswählen. Weitere Informationen zum Schreiben von Abfragen für CloudWatch finden Sie unter Analysieren von Protokolldaten mit CloudWatch Logs Insights im Amazon CloudWatch Logs-Benutzerhandbuch.
Die folgende Abbildung zeigt diese Metriken für einen Beispielcluster:
Überlegungen und Einschränkungen
Die Effektivität von Skalierungsstrategien kann je nach Ihren individuellen Workload-Merkmalen und der Cluster-Konfiguration variieren. Wir empfehlen Ihnen, mit der Skalierungseinstellung zu experimentieren, um einen optimalen Indexwert für Ihren Anwendungsfall zu ermitteln.
Amazon EMR Advanced Scaling eignet sich besonders gut für Batch-Workloads. Für Workloads SQL/data-warehousing und Streaming empfehlen wir, die Standardstrategie für verwaltete Skalierung zu verwenden, um eine optimale Leistung zu erzielen.
Amazon EMR Advanced Scaling wird nicht unterstützt, wenn Node Label-Konfigurationen im Cluster aktiviert sind. Wenn sowohl Advanced Scaling als auch Node Label-Konfigurationen zusammen in einem Cluster aktiviert sind, ist das Skalierungsverhalten so, als ob die Standardeinstellung für verwaltete Skalierung aktiviert wäre.
Die leistungsoptimierte Skalierungsstrategie ermöglicht eine schnellere Auftragsausführung, da hohe Rechenressourcen über einen längeren Zeitraum als bei der Standardstrategie für verwaltete Skalierung aufrechterhalten werden. In diesem Modus wird der schnellen Skalierung Priorität eingeräumt, um den Ressourcenanforderungen gerecht zu werden, was zu einer schnelleren Auftragsabwicklung führt. Dies kann im Vergleich zur Standardstrategie zu höheren Kosten führen.
In Fällen, in denen der Cluster bereits optimiert und voll ausgelastet ist, bietet die Aktivierung von Advanced Scaling möglicherweise keine zusätzlichen Vorteile. In einigen Situationen kann die Aktivierung von Advanced Scaling zu erhöhten Kosten führen, da die Workloads länger dauern können. In diesen Fällen empfehlen wir, die Standardstrategie für verwaltete Skalierung zu verwenden, um eine optimale Ressourcenzuweisung und Kosteneffizienz sicherzustellen.
Im Kontext der verwalteten Skalierung verlagert sich der Schwerpunkt im Laufe der Ausführungszeit auf die Ressourcenauslastung, da die Einstellung von leistungsoptimiert [100] auf auslastungsoptimiert [1] angepasst wird. Es ist jedoch wichtig zu beachten, dass die Ergebnisse je nach Art der Arbeitslast und der Cluster-Topologie variieren können. Um optimale Ergebnisse für Ihren Anwendungsfall zu erzielen, empfehlen wir dringend, die Skalierungsstrategien mit Ihren Workloads zu testen, um die am besten geeignete Einstellung zu ermitteln.
Der PerformanceUtilizationIndex akzeptiert nur die folgenden Werte:
1
25
50
75
100
Alle anderen übermittelten Werte führen zu einem Validierungsfehler.