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.
Grundlegendes zu Strategien und Szenarien für die Knotenzuweisung
Dieser Abschnitt gibt einen Überblick über die Strategie zur Knotenzuweisung und allgemeine Skalierungsszenarien, die Sie mit Amazon EMR Managed Scaling verwenden können.
Knotenzuweisungsstrategie
Amazon EMR Managed Scaling weist Core- und Aufgabenknoten auf der Grundlage der folgenden Strategien zum hochskalieren und herunterskalieren zu:
Strategie zum hochskalieren
-
Amazon EMR Managed Scaling fügt zuerst Kapazität zu den Core-Knoten und dann zu den Aufgabenknoten hinzu, bis die maximal zulässige Kapazität erreicht ist oder bis die gewünschte Hochskalierungs-Zielkapazität erreicht ist.
-
Wenn Amazon EMR bei der Skalierung mit der aktuellen Instance-Gruppe verzögert wird, wechseln Cluster, die verwaltete Skalierung verwenden, automatisch zu einer anderen Task-Instance-Gruppe.
-
Wenn der
MaximumCoreCapacityUnits
-Parameter festgelegt ist, skaliert Amazon EMR die Core-Knoten, bis die Kerneinheiten den maximal zulässigen Grenzwert erreichen. Die gesamte verbleibende Kapazität wird den Aufgabenknoten hinzugefügt. -
Wenn der
MaximumOnDemandCapacityUnits
-Parameter festgelegt ist, skaliert Amazon EMR den Cluster mithilfe der On-Demand-Instances, bis die On-Demand-Einheiten den maximal zulässigen Grenzwert erreichen. Die gesamte verbleibende Kapazität wird mithilfe von Spot Instances hinzugefügt. -
Wenn sowohl
MaximumCoreCapacityUnits
als auch derMaximumOnDemandCapacityUnits
Parameter festgelegt sind, berücksichtigt Amazon EMR bei der Skalierung beide Grenzwerte.Wenn
MaximumCoreCapacityUnits
beispielsweise kleiner alsMaximumOnDemandCapacityUnits
ist, skaliert Amazon EMR zunächst die Core-Knoten, bis die Kernkapazitätsgrenze erreicht ist. Für die verbleibende Kapazität verwendet Amazon EMR zunächst On-Demand-Instances, um Aufgabenknoten zu skalieren, bis das On-Demand-Limit erreicht ist, und verwendet dann Spot Instances für Aufgabenknoten.
Strategie zum herunterskalieren
-
Amazon-EMR-Versionen 5.34.0 und höher sowie Amazon-EMR-Versionen 6.4.0 und höher unterstützen verwaltete Skalierung, die Spark-Shuffle-Daten berücksichtigt (Daten, die Spark partitionsübergreifend verteilt, um bestimmte Vorgänge auszuführen). Weitere Informationen zu Shuffle-Vorgängen finden Sie im Spark-Programmierhandbuch.
Bei der verwalteten Skalierung werden nur Instances herunterskaliert, die nicht ausreichend ausgelastet sind und keine aktiv genutzten Shuffle-Daten enthalten. Diese intelligente Skalierung verhindert den unbeabsichtigten Verlust von Shuffle-Daten, sodass keine erneuten Versuche und die Neuberechnung von Zwischendaten erforderlich sind. -
Amazon EMR Managed Scaling entfernt zuerst Aufgabenknoten und dann Core-Knoten, bis die gewünschte Herunterskalierungs-Zielkapazität erreicht ist. Der Cluster wird niemals unter die Mindestbeschränkungen in der verwalteten Skalierungsrichtlinie skaliert.
-
Innerhalb jedes Knotentyps (entweder Core-Knoten oder Aufgabenknoten) entfernt Amazon EMR Managed Scaling zuerst Spot Instances und dann On-Demand-Instances.
-
Bei Clustern, die mit Amazon EMR 5.x-Versionen 5.34.0 und höher und 6.x-Versionen 6.4.0 und höher gestartet werden, skaliert Amazon EMR Managed Scaling keine Knoten, auf denen
ApplicationMaster
für Apache Spark ausgeführt wird. Dadurch werden Fehlschläge und Wiederholungen von Aufträgen minimiert, was zur Verbesserung der Auftragsleistung und zur Senkung der Kosten beiträgt. Um zu überprüfen, welche Knoten in Ihrem ClusterApplicationMaster
ausführen, besuchen Sie den Spark History Server und filtern Sie auf der Registerkarte Executors Ihrer Spark-Anwendungs-ID nach dem Treiber.
Wenn der Cluster nicht ausgelastet ist, storniert Amazon EMR das Hinzufügen neuer Instances aus einer früheren Evaluierung und führt Herunterskalierungsvorgänge durch. Wenn der Cluster stark ausgelastet ist, bricht Amazon EMR das Entfernen von Instances ab und führt Hochskalierungsvorgänge durch.
Überlegungen zur Knotenzuweisung
Wir empfehlen, die On-Demand-Kaufoption für Core-Knoten zu verwenden, um HDFS-Datenverlust im Falle einer Spot-Rückforderung zu vermeiden. Sie können die Spot-Kaufoption für Aufgabenknoten verwenden, um die Kosten zu senken und die Auftragsausführung zu beschleunigen, wenn mehr Spot Instances zu Aufgabenknoten hinzugefügt werden.
Knotenzuweisungsszenarien
Sie können je nach Bedarf verschiedene Skalierungsszenarien erstellen, indem Sie die Core-Knotenparameter Maximum, Minimum, On-Demand-Limit und Maximum in unterschiedlichen Kombinationen einrichten.
Szenario 1: Nur Core-Knoten skalieren
Um nur Core-Knoten zu skalieren, müssen die verwalteten Skalierungsparameter die folgenden Anforderungen erfüllen:
-
Das On-Demand-Limit entspricht der maximalen Grenze.
-
Der maximale Core-Knoten entspricht der maximalen Grenze.
Wenn das On-Demand-Limit und die maximale Anzahl an Core-Knoten nicht angegeben sind, verwenden beide Parameter standardmäßig die maximale Grenze.
Das folgende Beispiele zeigt das Szenario der ausschließlichen Skalierung von Core-Knoten.
Ausgangszustand des Clusters | Skalierungsparameter | Skalierungs-Verhalten |
---|---|---|
Instance-Gruppen Core: 1 On-Demand Aufgabe: 1 On-Demand- und 1 Spot |
|
Skalieren Sie mithilfe des On-Demand-Typs zwischen 1 und 20 Instances oder Instance-Flotteneinheiten auf Core-Knoten. Keine Skalierung auf Aufgabenknoten. |
Instance-Flotten Core: 1 On-Demand Aufgabe: 1 On-Demand- und 1 Spot |
UnitType: InstanceFleetUnits
|
Szenario 2: Nur Aufgabenknoten skalieren
Um nur Aufgabenknoten zu skalieren, müssen die verwalteten Skalierungsparameter die folgenden Anforderungen erfüllen:
-
Der maximale Core-Knoten muss der Mindestgrenze entsprechen.
Das folgende Beispiele zeigt das Szenario der ausschließlichen Skalierung von Aufgabenknoten.
Ausgangszustand des Clusters | Skalierungsparameter | Skalierungs-Verhalten |
---|---|---|
Instance-Gruppen Core: 2 On-Demand Aufgabe: 1 Spot |
|
Halten Sie die Anzahl der Core-Knoten konstant bei 2 und skalieren Sie nur Aufgabenknoten zwischen 0 und 18 Instances oder Instance-Flotteneinheiten. Die Kapazität zwischen Mindest- und Höchstgrenzen wird nur den Aufgabenknoten hinzugefügt. |
Instance-Flotten Core: 2 On-Demand Aufgabe: 1 Spot |
|
Szenario 4: Nur On-Demand-Instance im Cluster
Um nur über On-Demand-Instances zu verfügen, müssen Ihr Cluster und die verwalteten Skalierungsparameter die folgende Anforderung erfüllen:
-
Das On-Demand-Limit entspricht der maximalen Grenze.
Wenn das On-Demand-Limit nicht angegeben ist, entspricht der Parameterwert standardmäßig der Höchstgrenze. Der Standardwert gibt an, dass Amazon EMR nur On-Demand-Instances skaliert.
Wenn die maximale Anzahl an Core-Knoten kleiner als die maximale Grenze ist, kann der Parameter „Maximaler Core-Knoten“ verwendet werden, um die Kapazitätszuweisung zwischen Core- und Aufgabenknoten aufzuteilen.
Um dieses Szenario in einem Cluster zu aktivieren, der aus Instance-Gruppen besteht, müssen alle Knotengruppen im Cluster bei der Erstkonfiguration den Markttyp On-Demand verwenden.
Die folgenden Beispiele veranschaulichen das Szenario, in dem On-Demand-Instances im gesamten Cluster vorhanden sind.
Ausgangszustand des Clusters | Skalierungsparameter | Skalierungs-Verhalten |
---|---|---|
Instance-Gruppen Core: 1 On-Demand Aufgabe: 1 On-Demand |
|
Skalieren Sie mithilfe des On-Demand-Typs zwischen 1 und 12 Instances oder Instance-Flotteneinheiten auf Core-Knoten. Skalieren Sie die verbleibende Kapazität mithilfe von On-Demand-Funktion auf Aufgabenknoten. Keine Skalierung mit Spot Instances. |
Instance-Flotten Core: 1 On-Demand Aufgabe: 1 On-Demand |
|
Szenario 4: Nur Spot Instances im Cluster
Um nur Spot Instances zu verwenden, müssen die verwalteten Skalierungsparameter die folgenden Anforderungen erfüllen:
-
Das On-Demand-Limit ist auf 0 gesetzt.
Wenn die maximale Anzahl an Core-Knoten kleiner als die maximale Grenze ist, kann der Parameter „Maximaler Core-Knoten“ verwendet werden, um die Kapazitätszuweisung zwischen Core- und Aufgabenknoten aufzuteilen.
Um dieses Szenario in einem Cluster zu aktivieren, der aus Instance-Gruppen besteht, muss die Kern-Instance-Gruppe bei der Erstkonfiguration die Spot-Kaufoption verwenden. Wenn in der Aufgaben-Instance-Gruppe keine Spot Instance vorhanden ist, erstellt Amazon EMR Managed Scaling bei Bedarf eine Auftragsgruppe, die Spot Instances verwendet.
Die folgenden Beispiele veranschaulichen das Szenario, in dem Spot Instances im gesamten Cluster vorhanden sind.
Ausgangszustand des Clusters | Skalierungsparameter | Skalierungs-Verhalten |
---|---|---|
Instance-Gruppen Core: 1 Spot Aufgabe: 1 Spot |
|
Skalieren Sie mithilfe von Spot zwischen 1 und 20 Instances oder Instance-Flotteneinheiten auf Core-Knoten. Keine Skalierung beim On-Demand-Typ. |
Instance-Flotten Core: 1 Spot Aufgabe: 1 Spot |
|
Szenario 5: On-Demand-Instances auf Core-Knoten und Spot Instances auf Aufgabenknoten skalieren
Um On-Demand-Instances auf Core-Knoten und Spot Instances auf Aufgabenknoten zu skalieren, müssen die verwalteten Skalierungsparameter die folgenden Anforderungen erfüllen:
-
Das On-Demand-Limit muss dem maximalen Core-Knoten entsprechen.
-
Sowohl das On-Demand-Limit als auch die maximale Anzahl an Core-Knoten müssen unter der maximalen Grenze liegen.
Um dieses Szenario in einem Cluster zu aktivieren, der aus Instance-Gruppen besteht, muss die Core-Knotengruppe die On-Demand-Kaufoption verwenden.
Die folgenden Beispiele veranschaulichen das Szenario der Skalierung von On-Demand-Instances auf Core-Knoten und Spot Instances auf Aufgabenknoten.
Ausgangszustand des Clusters | Skalierungsparameter | Skalierungs-Verhalten |
---|---|---|
Instance-Gruppen Core: 1 On-Demand Aufgabe: 1 On-Demand- und 1 Spot |
|
Hochskalieren Sie auf bis zu 6 On-Demand-Einheiten auf dem Core-Knoten, da sich bereits 1 On-Demand-Einheit auf dem Aufgabenknoten befindet und die maximale Anzahl für On-Demand-Einheiten 7 beträgt. Hochskalieren Sie anschließend auf bis zu 13 Spot-Einheiten auf Aufgabenknoten. |
Instance-Flotten Core: 1 On-Demand Aufgabe: 1 On-Demand- und 1 Spot |
|