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.
Verwenden der verwalteten Skalierung in Amazon EMR
Wichtig
Wir empfehlen dringend, die neueste Amazon EMR-Version (Amazon EMR 7.13.0) für die verwaltete Skalierung zu verwenden. In einigen frühen Versionen kann es zu zeitweiligen Anwendungsausfällen oder Verzögerungen bei der Skalierung kommen. Amazon EMR hat dieses Problem mit den 5.x-Versionen 5.30.2, 5.31.1, 5.32.1, 5.33.1 und höher sowie mit den 6.x-Versionen 6.1.1, 6.2.1, 6.3.1 und höher behoben. Weitere Informationen zur Region und Release-Verfügbarkeit finden Sie unter Verwaltete Skalierungsverfügbarkeit
-Übersicht
Mit den Amazon-EMR-Versionen 5.30.0 und höher (außer Amazon EMR 6.0.0) können Sie die von Amazon EMR Managed Scaling aktivieren. Managed Scaling hilft Ihnen, die Anzahl der Instances oder Einheiten in Ihrem Cluster basierend auf der Workload automatisch zu erhöhen oder zu verringern. Amazon EMR wertet Cluster-Metriken kontinuierlich aus, um Skalierungsentscheidungen zu treffen, die Ihre Cluster für Kosten und Geschwindigkeit optimieren. Verwaltete Skalierung ist für Cluster verfügbar, die entweder aus Instance-Gruppen oder Instance-Flotten bestehen.
Verwaltete Skalierungsverfügbarkeit
-
Im Folgenden AWS-Regionen ist Amazon EMR Managed Scaling mit Amazon EMR 6.14.0 und höher verfügbar:
Asien-Pazifik (Taipei) (ap-east-2)
Asien-Pazifik (Melbourne) (ap-southeast-4)
Asien-Pazifik (Malaysia) (ap-southeast-5)
Asien-Pazifik (Neuseeland) (ap-southeast-6)
Asien-Pazifik (Thailand) (ap-southeast-7)
Kanada West (Calgary) (ca-west-1)
Europa (Spanien) (eu-south-2)
Mexiko (Zentral) (mx-central-1)
-
Im Folgenden AWS-Regionen ist die von Amazon EMR verwaltete Skalierung mit Amazon EMR 5.30.0 und 6.1.0 und höher verfügbar:
USA Ost (Nord-Virginia): (us-east-1)
USA Ost (Ohio): (us-east-2)
USA West (Oregon): (us-west-2)
USA West (Nordkalifornien) (us-west-1)
Afrika (Kapstadt) (af-south-1)
Asien-Pazifik (Hongkong) (ap-east-1)
Asien-Pazifik (Mumbai): (ap-south-1)
Asien-Pazifik (Hyderabad) (ap-south-2)
Asien-Pazifik (Seoul): (ap-northeast-2)
Asien-Pazifik (Singapur): (ap-southeast-1)
Asien-Pazifik (Sydney): (ap-southeast-2)
Asien-Pazifik (Jakarta) (ap-southeast-3)
Asien-Pazifik (Tokyo) (ap-northeast-1)
Asien-Pazifik (Osaka) (ap-northeast-3)
Kanada (Zentral): (ca-central-1)
Südamerika (São Paulo) (sa-east-1)
Europa (Frankfurt) (eu-central-1)
Europa (Zürich) (eu-central-2)
Europa (Irland) (eu-west-1)
Europa (London) (eu-west-2)
Europa (Mailand) (eu-south-1)
Europa (Paris) (eu-west-3)
Europa (Stockholm) (eu-north-1)
Israel (Tel Aviv) (il-central-1)
Naher Osten (VAE) (me-central-1)
China (Peking) (cn-north-1)
China (Ningxia) (cn-northwest-1)
AWS GovCloud () (us-gov-east-1) US-East
AWS GovCloud () (us-gov-west-1) US-West
-
Amazon EMR Managed Scaling funktioniert nur mit YARN-Anwendungen wie Spark, Hadoop, Hive und Flink. Es werden keine Anwendungen unterstützt, die nicht auf YARN basieren, wie Presto und HBase.
Verwaltete Skalierungsparameter
Sie müssen die folgenden Parameter für die verwaltete Skalierung konfigurieren. Das Limit gilt nur für die Kern- und Aufgabenknoten. Der Primärknoten kann nach der Erstkonfiguration nicht skaliert werden.
-
Minimum (
MinimumCapacityUnits) – Die untere Grenze der zulässigen EC2-Kapazität in einem Cluster. Sie wird durch vCPU-Kerne oder Instances für Instance-Gruppen gemessen. Sie wird in Einheiten für Instance-Flotten gemessen. -
Maximum (
MaximumCapacityUnits) – Die Obergrenze der zulässigen EC2-Kapazität in einem Cluster. Sie wird durch vCPU-Kerne oder Instances für Instance-Gruppen gemessen. Sie wird in Einheiten für Instance-Flotten gemessen. -
On-Demand limit (
MaximumOnDemandCapacityUnits) (optional) — Die Obergrenze der zulässigen EC2-Kapazität für den On-Demand Markttyp in einem Cluster. Wenn dieser Parameter nicht angegeben wird, wird der StandardwertMaximumCapacityUnitsverwendet.-
Dieser Parameter wird verwendet, um die Kapazitätszuweisung zwischen Spot-Instances On-Demand und Spot-Instances aufzuteilen. Wenn Sie beispielsweise den Mindestparameter auf 2 Instances, den Maximalparameter auf 100 Instances und das On-Demand Limit auf 10 Instances festlegen, skaliert die von Amazon EMR verwaltete Skalierung auf bis zu 10 On-Demand Instances und weist die verbleibende Kapazität Spot-Instances zu. Weitere Informationen finden Sie unter Knotenzuweisungsszenarien.
-
-
Maximale Core-Knoten (
MaximumCoreCapacityUnits) (optional) – Die Obergrenze der zulässigen EC2-Kapazität für den Core-Knotentyp in einem Cluster. Wenn dieser Parameter nicht angegeben wird, wird der StandardwertMaximumCapacityUnitsverwendet.-
Dieser Parameter wird verwendet, um die Kapazitätszuweisung zwischen Core- und Aufgabenknoten aufzuteilen. Wenn Sie beispielsweise den Minimalparameter auf 2 Instances, das Maximum auf 100 Instances und den maximalen Core-Knoten auf 17 Instances festlegen, skaliert Amazon EMR Managed Scaling auf bis zu 17 Core-Knoten und weist die verbleibenden 83 Instances Aufgabenknoten zu. Weitere Informationen finden Sie unter Knotenzuweisungsszenarien.
-
Weitere Informationen zu verwalteten Skalierungsparametern finden Sie unter ComputeLimits.
Hinweise zu Amazon EMR Managed Scaling
-
Die verwaltete Skalierung wird in limitierten Versionen AWS-Regionen und in Amazon EMR-Versionen unterstützt. Weitere Informationen finden Sie unter Verwaltete Skalierungsverfügbarkeit.
-
Sie müssen die folgenden Parameter für die Amazon EMR Managed Scaling konfigurieren. Weitere Informationen finden Sie unter Verwaltete Skalierungsparameter.
-
Um verwaltete Skalierung verwenden zu können, muss der Metrics-Collector-Prozess in der Lage sein, eine Verbindung zum öffentlichen API-Endpunkt für die verwaltete Skalierung in API Gateway herzustellen. Wenn Sie einen privaten DNS-Namen mit verwenden Amazon Virtual Private Cloud, funktioniert die verwaltete Skalierung nicht richtig. Um sicherzustellen, dass die verwaltete Skalierung funktioniert, empfehlen wir, dass Sie eine der folgenden Aktionen ausführen:
-
Entfernen Sie den VPC-Endpunkt der API-Gateway-Schnittstelle aus Ihrer Amazon VPC.
-
Folgen Sie den Anweisungen unter Warum erhalte ich den Fehler HTTP 403 Forbidden, wenn ich von einer VPC aus eine Verbindung zu meinen API-Gateway-APIs herstelle?
, um die Einstellung des privaten DNS-Namens zu deaktivieren. -
Starten Sie Ihren Cluster stattdessen in einem privaten Subnetz. Weitere Informationen finden Sie im Thema Private Subnetze.
-
-
Wenn Ihre YARN-Jobs während des Herunterskalierens zeitweise langsam sind und die YARN Ressource Manager-Protokolle zeigen, dass die meisten Ihrer Knoten während dieser Zeit auf der Negativliste standen, können Sie den Schwellenwert für die Außerbetriebnahme anpassen.
Reduzieren Sie den
spark.blacklist.decommissioning.timeoutvon einer Stunde auf eine Minute, um den Knoten für andere ausstehende Container verfügbar zu machen, um die Aufgabenverarbeitung fortzusetzen.Sie sollten auch einen höheren Wert
YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secsfestlegen, um sicherzustellen, dass Amazon EMR das Beenden des Knotens nicht erzwingt, solange die längste „Spark-Task“ noch auf dem Knoten läuft. Die aktuelle Standardeinstellung ist 60 Minuten, was bedeutet, dass YARN den Container nach 60 Minuten auf jeden Fall beendet, sobald der Knoten in den Stilllegungszustand übergeht.Die folgende Protokollzeile von YARN Resource Manager zeigt Knoten, die dem Status „Außerbetriebnahme“ hinzugefügt wurden:
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: []Erfahren Sie mehr darüber wie Amazon EMR bei der Außerbetriebnahme von Knoten mit YARN Ablehnungsliste
integriert wird, zu Fällen, in denen Knoten in Amazon EMR abgelehnt werden können, und zur Konfiguration des Verhaltens bei der Außerbetriebnahme von Spark-Knoten. Bei Spark-Workloads
FALSEkann die Deaktivierung von Spark Dynamic Resource Allocator (DRA) durch Ändern der Spark-Eigenschaft spark.dynamic Allocation.enabled zu Managed Scaling-Problemen führen, bei denen Cluster mehr als für Ihre Workloads erforderlich hochskaliert werden können (bis zur maximalen Rechenleistung). Wenn Sie Managed Scaling für diese Workloads verwenden, empfehlen wir, Spark DRA aktiviert zu lassen, was der Standardstatus dieser Eigenschaft ist.-
Over-utilization von EBS-Volumes können Managed Scaling-Probleme verursachen. Wir empfehlen, das EBS-Volumen unter einer Auslastung 90 % zu halten. Weitere Informationen finden Sie unter Speicheroptionen und Verhalten von Instances in Amazon EMR.
-
CloudWatch Amazon-Metriken sind entscheidend für den Betrieb der von Amazon EMR verwalteten Skalierung. Wir empfehlen Ihnen, die CloudWatch Amazon-Metriken genau zu überwachen, um sicherzustellen, dass keine Daten fehlen. Weitere Informationen darüber, wie Sie CloudWatch Alarme konfigurieren können, um fehlende Messwerte zu erkennen, finden Sie unter CloudWatch Amazon-Alarme verwenden.
-
Verwaltete Skalierungsvorgänge auf Clustern der Versionen 5.30.0 und 5.30.1, ohne dass Presto installiert ist, können zu Anwendungsausfällen führen oder dazu führen, dass eine einheitliche Instance-Gruppe oder Instance-Flotte unverändert im Status
ARRESTEDbleibt, insbesondere wenn auf einen Herunterskalierungsvorgang schnell ein Skalierungsvorgang folgt.Um dieses Problem zu umgehen, wählen Sie Presto als zu installierende Anwendung, wenn Sie einen Cluster mit den Amazon-EMR-Versionen 5.30.0 und 5.30.1 erstellen, auch wenn Ihr Auftrag Presto nicht benötigt.
-
Wenn Sie den maximalen Core-Node und das On-Demand Limit für die von Amazon EMR verwaltete Skalierung festlegen, sollten Sie die Unterschiede zwischen Instanzgruppen und Instance-Flotten berücksichtigen. Jede Instanzgruppe besteht aus demselben Instance-Typ und derselben Kaufoption für Instances: On-Demand oder Spot. Für jede Instance-Flotte können Sie bis zu fünf Instance-Typen angeben, die als On-Demand Spot-Instances bereitgestellt werden können. Weitere Informationen finden Sie unter Erstellen eines Clusters mit Instance-Flotten oder einheitlichen Instance-Gruppen, Instance Flotten Optionen und Knotenzuweisungsszenarien.
-
Wenn Sie bei Amazon EMR 5.30.0 und höher die standardmäßige ausgehende Regel Alle zulassen auf 0.0.0.0/ für die Master-Sicherheitsgruppe entfernen, müssen Sie eine Regel hinzufügen, die ausgehende TCP-Konnektivität zu Ihrer Sicherheitsgruppe für den Servicezugriff am Port 9443 zulässt. Ihre Sicherheitsgruppe für den Servicezugang muss auch eingehenden TCP-Verkehr auf Port 9443 von der Master-Sicherheitsgruppe zulassen. Weitere Informationen zur Konfiguration von Sicherheitsgruppen finden Sie unter EMR-managed Amazon-Sicherheitsgruppe für die primäre Instance (private Subnetze).
-
Sie können es verwenden AWS CloudFormation , um die von Amazon EMR verwaltete Skalierung zu konfigurieren. Weitere Informationen finden Sie unter AWS::EMR::Cluster im AWS CloudFormation -Benutzerhandbuch.
-
Wenn Sie Spot-Knoten verwenden, sollten Sie die Verwendung von Node-Labels in Betracht ziehen, um zu verhindern, dass Amazon EMR Anwendungsprozesse entfernt, wenn Amazon EMR Spot-Knoten entfernt. Weitere Informationen zu Node-Labels finden Sie unter Task-Nodes.
-
Die Knotenbeschriftung wird in den Amazon EMR-Versionen 6.15 oder niedriger standardmäßig nicht unterstützt. Weitere Informationen finden Sie unter Grundlegendes zu den Knotentypen: Primär-, Kern- und Taskknoten.
-
Wenn Sie Amazon EMR-Versionen 6.15 oder niedriger verwenden, können Sie Node-Labels nur nach Knotentyp zuweisen, z. B. nach Kern- und Taskknoten. Wenn Sie jedoch Amazon EMR Version 7.0 oder höher verwenden, können Sie Node-Labels nach Knotentyp und Markttyp konfigurieren, z. B. On-Demand und Spot.
-
Wenn die Nachfrage nach Anwendungsprozessen steigt und die Nachfrage nach Ausführern sinkt, weil Sie den Anwendungsprozess auf Kernknoten beschränkt haben, können Sie im gleichen Vorgang zur Größenänderung wieder Kernknoten hinzufügen und Task-Knoten entfernen. Weitere Informationen finden Sie unter Grundlegendes zur Strategie und zu den Szenarien für die Knotenzuweisung.
-
Amazon EMR kennzeichnet Taskknoten nicht, sodass Sie die YARN-Eigenschaften nicht so einstellen können, dass Anwendungsprozesse nur für Taskknoten eingeschränkt werden. Wenn Sie jedoch Markttypen als Node-Labels verwenden möchten, können Sie die
SPOTOr-Labels für dieON_DEMANDPlatzierung von Anwendungsprozessen verwenden. Wir empfehlen nicht, Spot-Nodes für primäre Anwendungsprozesse zu verwenden. -
Wenn Sie Node-Labels verwenden, kann die Gesamtzahl der ausgeführten Einheiten im Cluster vorübergehend die in Ihrer Richtlinie für verwaltete Skalierung festgelegte maximale Rechenleistung überschreiten, während Amazon EMR einige Ihrer Instances außer Betrieb nimmt. Die Gesamtzahl der angeforderten Einheiten bleibt immer bei oder unter der maximalen Rechenleistung Ihrer Richtlinie.
-
Die verwaltete Skalierung unterstützt nur die Knotenbezeichnungen
ON_DEMANDundSPOToderCOREundTASK. Benutzerdefinierte Knotenbezeichnungen werden nicht unterstützt. -
Amazon EMR erstellt Knotenbezeichnungen, wenn der Cluster erstellt und Ressourcen bereitgestellt werden. Amazon EMR unterstützt das Hinzufügen von Knotenbezeichnungen bei der Neukonfiguration des Clusters nicht. Sie können die Knotenbezeichnungen auch nicht ändern, wenn Sie die verwaltete Skalierung nach dem Start des Clusters konfigurieren.
-
Bei der verwalteten Skalierung werden Kern- und Taskknoten unabhängig vom Anwendungsprozess und der Anforderung des Executors skaliert. Um Probleme mit HDFS-Datenverlusten beim Herunterskalieren des Kerns zu vermeiden, folgen Sie der Standardpraxis für Core-Knoten. Weitere Informationen zu bewährten Methoden in Bezug auf Kernknoten und HDFS-Replikation finden Sie unter Überlegungen und bewährte Methoden.
-
Sie können nicht sowohl den Anwendungsprozess als auch die Executoren nur auf dem Knoten
coreoder dem Knoten platzieren.ON_DEMANDWenn Sie sowohl den Anwendungsprozess als auch die Executoren auf einem der Knoten hinzufügen möchten, verwenden Sie die Konfiguration nicht.yarn.node-labels.am.default-node-label-expressionUm beispielsweise sowohl den Anwendungsprozess als auch die Executoren in
ON_DEMANDKnoten zu platzieren, setzen Sie Max Compute auf das Maximum im Knoten.ON_DEMANDEntfernen Sie auch die Konfigurationyarn.node-labels.am.default-node-label-expression.Um sowohl den Anwendungsprozess als auch die Executoren auf den
coreKnoten hinzuzufügen, entfernen Sie dieyarn.node-labels.am.default-node-label-expressionKonfiguration. -
Wenn Sie die verwaltete Skalierung mit Knotenbezeichnungen verwenden, legen Sie die Eigenschaft fest,
yarn.scheduler.capacity.maximum-am-resource-percent: 1wenn Sie mehrere Anwendungen parallel ausführen möchten. Dadurch wird sichergestellt, dass Ihre Anwendungsprozesse die verfügbarenCOREON_DEMANDKnoten vollständig nutzen. -
Wenn Sie verwaltete Skalierung mit Knotenbezeichnungen verwenden, legen Sie für die Eigenschaft
yarn.resourcemanager.decommissioning.timeouteinen Wert fest, der länger ist als die am längsten ausgeführte Anwendung in Ihrem Cluster. Dadurch verringert sich die Wahrscheinlichkeit, dass die von Amazon EMR verwaltete Skalierung Ihre Anwendungen für die Wiederinbetriebnahme von Knoten neuCOREplanen muss.ON_DEMAND Um das Risiko von Anwendungsausfällen aufgrund des Verlusts von Shuffle-Daten zu reduzieren, erfasst Amazon EMR Metriken aus dem Cluster, um Knoten zu ermitteln, auf denen transiente Shuffle-Daten aus der aktuellen und vorherigen Phase vorhanden sind. In seltenen Fällen können Metriken weiterhin veraltete Daten für Anwendungen melden, die bereits abgeschlossen oder beendet wurden. Dies kann sich auf das rechtzeitige Herunterskalieren von Instances in Ihrem Cluster auswirken. Bei Clustern, die eine große Menge an Shuffle-Daten enthalten, sollten Sie die EMR-Versionen 6.13 und höher in Betracht ziehen.
Feature-Verlauf
In dieser Tabelle sind Aktualisierungen zur Funktion Amazon EMR Managed Scaling aufgeführt.
| Datum der Veröffentlichung | Funktion | Versionen für Amazon EMR |
|---|---|---|
| 20. November 2024 | Managed Scaling ist in den Regionen il-central-1 Israel (Tel Aviv), me-central-1 Naher Osten (VAE) und ap-northeast-3 Asien-Pazifik (Osaka) verfügbar. |
5.30.0 und 6.1.0 und höher |
| 15. November 2024 | Managed Scaling ist in der Region eu-central-2 Europa (Zürich) verfügbar. |
5.30.0 und 6.1.0 und höher |
| 20. August 2024 | Node-Labels sind jetzt in der verwalteten Skalierung verfügbar, sodass Sie Ihre Instances nach Markttyp oder Knotentyp kennzeichnen können, um die automatische Skalierung zu verbessern. | 7.2.0 und höher |
| 31. März 2024 | Managed Scaling ist in der Region ap-south-2 Asien-Pazifik (Hyderabad) verfügbar. |
6.14.0 und höher |
| 13. Februar 2024 | Managed Scaling ist in der Region eu-south-2 Europa (Spanien) verfügbar. |
6.14.0 und höher |
| 10. Oktober 2023 | Managed Scaling ist in der ap-southeast-3-Region Asien-Pazifik (Jakarta) verfügbar. |
6.14.0 und höher |
| 28. Juli 2023 | Verbesserte verwaltete Skalierung, um beim hochskalieren zu einer anderen Aufgaben-Instance-Gruppe zu wechseln, wenn es bei Amazon EMR beim hochskalieren mit der aktuellen Instance-Gruppe zu Verzögerungen kommt. | 5.34.0 und höher, 6.4.0 und höher |
| 16. Juni 2023 | Verbesserte verwaltete Skalierung, sodass erkannt wird, auf welchen Knoten der Application Master ausgeführt wird, sodass diese Knoten nicht herunterskaliert werden. Weitere Informationen finden Sie unter Grundlegendes zur Strategie und zu den Szenarien der Amazon EMR-Knotenzuweisung. | 5.34.0 und höher, 6.4.0 und höher |
| 21. März 2022 | Spark Shuffle Data Awareness wurde hinzugefügt, das beim Herunterskalieren von Clustern verwendet wird. Für Amazon-EMR-Cluster mit Apache Spark und aktiviertem verwaltetem Skalierungsfeature überwacht Amazon EMR kontinuierlich Spark-Executoren und Zwischenspeicherorte für Shuffle-Daten. Anhand dieser Informationen skaliert Amazon EMR nur ungenutzte Instances herunter, die keine aktiv genutzten Shuffle-Daten enthalten. Dadurch wird eine Neuberechnung verloren gegangener Shuffle-Daten verhindert, was zur Senkung der Kosten und zur Verbesserung der Arbeitsleistung beiträgt. Weitere Informationen finden Sie unter im Spark-Programmierhandbuch |
5.34.0 und höher, 6.4.0 und höher |