Verwenden von verwalteter Skalierung in Amazon EMR - 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.

Verwenden von verwalteter Skalierung in Amazon EMR

Wichtig

Wir empfehlen dringend, die neueste EMR Amazon-Version (Amazon EMR 7.3.0) für verwaltete Skalierung zu verwenden. In einigen frühen Versionen kann es zu zeitweiligen Anwendungsausfällen oder Verzögerungen bei der Skalierung kommen. Amazon 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 EMR behoben. Weitere Informationen zur Region und Release-Verfügbarkeit finden Sie unter Verwaltete Skalierungsverfügbarkeit

Übersicht

Mit EMR Amazon-Versionen 5.30.0 und höher (außer Amazon EMR 6.0.0) können Sie 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 wertet EMR kontinuierlich Cluster-Metriken aus, um Skalierungsentscheidungen zu treffen, die Ihre Cluster im Hinblick auf 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 (Hyderabad) (ap-south-2)

    • Asien-Pazifik (Jakarta) (ap-southeast-3)

    • Europa (Spanien) (eu-south-2)

  • Im Folgenden AWS-Regionen ist Amazon EMR Managed Scaling 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 (Seoul): (ap-northeast-2)

    • Asien-Pazifik (Singapur): (ap-southeast-1)

    • Asien-Pazifik (Sydney): (ap-southeast-2)

    • Asien-Pazifik (Tokyo) (ap-northeast-1)

    • Kanada (Zentral): (ca-central-1)

    • Südamerika (São Paulo) (sa-east-1)

    • Europa (Frankfurt) (eu-central-1)

    • 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)

    • China (Peking) (cn-north-1)

    • China (Ningxia) (cn-northwest-1)

    • AWS GovCloud (US-Ost) (-1) us-gov-east

    • AWS GovCloud (US-West) (us-gov-west-1)

  • Amazon EMR Managed Scaling funktioniert nur mit YARN Anwendungen wie Spark, Hadoop, Hive und Flink. Es unterstützt keine Anwendungen, die nicht darauf basierenYARN, 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 anhand von Kernen oder Instanzen der virtuellen Zentraleinheit (VCPU) für Instanzgruppen 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 anhand von Kernen oder Instanzen der virtuellen Zentraleinheit (VCPU) für Instanzgruppen 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 Standardwert MaximumCapacityUnits verwendet.

    • Dieser Parameter wird verwendet, um die Kapazitätszuweisung zwischen On-Demand- und Spot Instances aufzuteilen. Wenn Sie beispielsweise den Minimalparameter auf 2 Instances, den Maximalparameter auf 100 Instances und das On-Demand-Limit auf 10 Instances festlegen, skaliert Amazon EMR Managed Scaling auf bis zu 10 On-Demand-Instances und weist die verbleibende Kapazität Spot-Instances zu. Weitere Informationen finden Sie unter Knotenzuweisungsszenarien.

  • Maximale Anzahl an Kernknoten (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 Standardwert MaximumCapacityUnits verwendet.

    • 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 Kernknoten und weist die verbleibenden 83 Instances Task-Knoten zu. Weitere Informationen finden Sie unter Knotenzuweisungsszenarien.

Weitere Informationen zu verwalteten Skalierungsparametern finden Sie unter ComputeLimits.

Überlegungen zur von Amazon EMR verwalteten Skalierung

  • Managed Scaling wird in limitierten Versionen AWS-Regionen und EMR Amazon-Versionen unterstützt. Weitere Informationen finden Sie unter Verwaltete Skalierungsverfügbarkeit.

  • Sie müssen die erforderlichen Parameter für Amazon EMR Managed Scaling konfigurieren. Weitere Informationen finden Sie unter Verwaltete Skalierungsparameter.

  • Um Managed Scaling 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 Gateway herzustellen. API Wenn Sie einen privaten DNS Namen mit verwenden Amazon Virtual Private Cloud, funktioniert die verwaltete Skalierung nicht ordnungsgemäß. Um sicherzustellen, dass die verwaltete Skalierung funktioniert, empfehlen wir, dass Sie eine der folgenden Aktionen ausführen:

  • Wenn Ihre YARN Jobs während des Herunterskalierens zeitweise langsam sind und die YARN Resource 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.timeout von 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 festlegenYARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs, 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 der Container nach 60 Minuten YARN zwangsweise beendet wird, sobald der Knoten in den Stilllegungszustand übergeht.

    Das folgende Beispiel für eine YARN Resource Manager-Protokollzeile 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 bei der Außerbetriebnahme von Knoten in die YARN Deny-Listing-Funktion EMR integriert, in Fällen, in denen Knoten in Amazon auf eine Ablehnungsliste gesetzt werden EMR können, und zur Konfiguration des Verhaltens bei der Außerbetriebnahme von Spark-Knoten.

  • Eine übermäßige Auslastung von EBS Volumes kann zu Problemen mit Managed Scaling führen. Wir empfehlen, das EBS Volumen unter 90% zu halten. Weitere Informationen finden Sie unter Speicheroptionen und Verhalten von Instanzen in Amazon EMR.

  • CloudWatch Amazon-Metriken sind entscheidend für den Betrieb von Amazon EMR Managed Scaling. Wir empfehlen Ihnen, die CloudWatch Amazon-Metriken genau zu beobachten, 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 ARRESTED bleibt, 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 EMR Amazon-Versionen 5.30.0 und 5.30.1 erstellen, auch wenn Ihr Job Presto nicht benötigt.

  • Wenn Sie den maximalen Core-Knoten und das On-Demand-Limit für Amazon EMR Managed Scaling festlegen, sollten Sie die Unterschiede zwischen Instance-Gruppen und Instance-Flotten berücksichtigen. Jede Instance-Gruppenkonfiguration besteht jeder Knotentyp aus demselben Instance-Typ und derselben Kaufoption für Instances: On-Demand oder Spot. Für jede Instance-Flotte geben Sie bis zu fünf Instance-Typen an, die als On-Demand- und 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 Standardregel Allow All Outbound 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 auf Port 9443 zulässt. Ihre Sicherheitsgruppe für den Servicezugriff muss auch eingehenden TCP Datenverkehr über Port 9443 von der Master-Sicherheitsgruppe zulassen. Weitere Informationen zur Konfiguration von Sicherheitsgruppen finden Sie unter Von Amazon EMR verwaltete Sicherheitsgruppe für die primäre Instance (private Subnetze).

  • Sie können es verwenden AWS CloudFormation , um Amazon EMR Managed Scaling zu konfigurieren. Weitere Informationen finden Sie unter AWS:EMR: :Cluster im AWS CloudFormation Benutzerhandbuch.

  • Wenn Sie Spot-Knoten verwenden, sollten Sie die Verwendung EMR von Knotenbezeichnungen in Betracht ziehen, um zu verhindern, dass Amazon Anwendungsprozesse EMR entfernt, wenn Amazon Spot-Knoten entfernt. Weitere Informationen zu Knotenbezeichnungen finden Sie unter Task-Knoten.

  • Die Knotenkennzeichnung wird in EMR Amazon-Versionen 6.15 oder niedriger standardmäßig nicht unterstützt. Weitere Informationen finden Sie unter Grundlegendes zu Knotentypen: Primär-, Kern- und Aufgabenknoten.

  • Wenn Sie EMR Amazon-Versionen 6.15 oder niedriger verwenden, können Sie Knotenbezeichnungen nur nach Knotentyp zuweisen, z. B. Kern- und Aufgabenknoten. 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, wenn Sie den Anwendungsprozess auf Kernknoten beschränkt haben, können Sie bei derselben Größenänderung wieder Kernknoten hinzufügen und Aufgabenknoten entfernen. Weitere Informationen finden Sie unter Grundlegendes zu Strategien und Szenarien für die Knotenzuweisung.

  • Amazon kennzeichnet Aufgabenknoten EMR nicht, sodass Sie die YARN Eigenschaften nicht festlegen können, um Anwendungsprozesse nur für Aufgabenknoten einzuschränken. Wenn Sie jedoch Markttypen als Knotenbezeichnungen verwenden möchten, können Sie die SPOT Bezeichnungen ON_DEMAND oder für die Platzierung von Antragsprozessen verwenden. Wir empfehlen nicht, Spot-Nodes für primäre Anwendungsprozesse zu verwenden.

  • Wenn Sie Node Labels verwenden, kann die Gesamtzahl der laufenden Einheiten im Cluster vorübergehend die in Ihrer verwalteten Skalierungsrichtlinie festgelegte maximale Rechenleistung überschreiten, während Amazon EMR einige Ihrer Instances außer Betrieb nimmt. Die Gesamtzahl der angeforderten Einheiten bleibt immer auf oder unter der in Ihrer Richtlinie festgelegten maximalen Rechenleistung.

  • Managed Scaling unterstützt nur die Knotenbezeichnungen ON_DEMAND und SPOT oder CORE undTASK. Benutzerdefinierte Knotenbezeichnungen werden nicht unterstützt.

  • Amazon EMR erstellt Knotenbezeichnungen, wenn der Cluster erstellt und Ressourcen bereitgestellt werden. Amazon unterstützt das Hinzufügen von Knotenbezeichnungen bei der Neukonfiguration des Clusters EMR 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 voneinander auf der Grundlage des Anwendungsprozesses und der Nachfrage der Executoren skaliert. Um HDFS Datenverlust beim Herunterfahren der Kerne zu vermeiden, sollten Sie sich an die Standardpraxis für Kernknoten halten. Weitere Informationen zu bewährten Methoden für 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 core oder dem ON_DEMAND Knoten platzieren. Wenn 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-expression

    Um beispielsweise sowohl den Anwendungsprozess als auch die Executoren in ON_DEMAND Knoten zu platzieren, setzen Sie max compute auf den Wert Maximum im Knoten. ON_DEMAND Entfernen Sie außerdem die Konfigurationyarn.node-labels.am.default-node-label-expression.

    Um sowohl den Anwendungsprozess als auch Executoren auf core Knoten hinzuzufügen, entfernen Sie die yarn.node-labels.am.default-node-label-expression Konfiguration.

  • Wenn Sie verwaltete Skalierung mit Knotenbezeichnungen verwenden, legen Sie die Eigenschaft fest, yarn.scheduler.capacity.maximum-am-resource-percent: 1 wenn Sie mehrere Anwendungen parallel ausführen möchten. Dadurch wird sichergestellt, dass Ihre Anwendungsprozesse die verfügbaren CORE ON_DEMAND OR-Knoten vollständig nutzen.

  • Wenn Sie verwaltete Skalierung mit Knotenbezeichnungen verwenden, legen Sie für yarn.resourcemanager.decommissioning.timeout die Eigenschaft einen Wert fest, der länger ist als die am längsten laufende Anwendung in Ihrem Cluster. Dadurch wird die Wahrscheinlichkeit verringert, dass Amazon EMR Managed Scaling Ihre Anwendungen für die Wiederinbetriebnahme oder Knoten neu planen muss. CORE ON_DEMAND

Feature-Verlauf

In dieser Tabelle sind Aktualisierungen der von Amazon EMR verwalteten Skalierungsfunktion aufgeführt.

Datum der Veröffentlichung Funktion EMRAmazon-Versionen
20. August 2024 Node-Labels sind jetzt in Managed Scaling verfügbar, sodass Sie Ihre Instances nach Markt- 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 Scale-up zu einer anderen Task-Instance-Gruppe zu wechseln, wenn Amazon EMR bei der Skalierung mit der aktuellen Instance-Gruppe eine Verzögerung feststellt. 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 EMR Amazon-Knotenzuweisungsstrategie und -Szenarien. 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. Bei EMR Amazon-Clustern mit Apache Spark und aktivierter Managed Scaling-Funktion überwacht Amazon EMR kontinuierlich Spark-Executors und Zwischenspeicherorte für Shuffle-Daten. Anhand dieser Informationen EMR skaliert Amazon 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