Grundlegendes zu Strategien und Szenarien für die Knotenzuweisung - Amazon EMR

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 der MaximumOnDemandCapacityUnits Parameter festgelegt sind, berücksichtigt Amazon EMR bei der Skalierung beide Grenzwerte.

    Wenn MaximumCoreCapacityUnits beispielsweise kleiner als MaximumOnDemandCapacityUnits 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 Cluster ApplicationMaster 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

UnitType: Instances

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 20

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

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 20

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

UnitType: Instances

MinimumCapacityUnits: 2

MaximumCapacityUnits: 20

MaximumCoreCapacityUnits: 2

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

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 2

MaximumCapacityUnits: 20

MaximumCoreCapacityUnits: 2

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

UnitType: Instances

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 12

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

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 20

MaximumCoreCapacityUnits: 12

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

UnitType: Instances

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 0

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

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 0

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

UnitType: Instances

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 7

MaximumCoreCapacityUnits: 7

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

UnitType: InstanceFleetUnits

MinimumCapacityUnits: 1

MaximumCapacityUnits: 20

MaximumOnDemandCapacityUnits: 7

MaximumCoreCapacityUnits: 7