Cluster-Herunterskalierung - 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.

Cluster-Herunterskalierung

Anmerkung

Optionen für das Scale-down-Verhalten werden seit der EMR Amazon-Version 5.10.0 nicht mehr unterstützt. Aufgrund der Einführung der sekundengenauen Abrechnung in Amazon EC2 wird das Standard-Scale-Down-Verhalten für EMR Amazon-Cluster jetzt bei Abschluss der Aufgabe beendet.

In den EMR Amazon-Versionen 5.1.0 bis 5.9.1 gibt es zwei Optionen für das Scale-Down-Verhalten: Beenden innerhalb der Instanz-Stunden-Grenze für die EC2 Amazon-Abrechnung oder Beenden bei Abschluss der Aufgabe. Ab EMR Amazon-Version 5.10.0 ist die Einstellung für die Kündigung innerhalb der Instance-Stundengrenze veraltet, da Amazon die Abrechnung pro Sekunde eingeführt hat. EC2 Wir raten davon ab, die Beendigung zur Instance-Stundengrenze zu verwenden, wenn diese Option angeboten wird.

Warnung

Wenn Sie die Option verwenden, AWS CLI um ein modify-instance-groups mit auszustellenEC2InstanceIdsToTerminate, werden diese Instances sofort beendet, ohne Berücksichtigung dieser Einstellungen und unabhängig vom Status der Anwendungen, die auf ihnen ausgeführt werden. Wenn eine Instance auf diese Weise beendet wird, besteht das Risiko von Datenverlusten und unvorhersehbarem Clusterverhalten.

Wenn „Bei Abschluss der Aufgabe beenden“ angegeben ist, EMR lehnt Amazon die Aufgaben ab und entfernt sie von den Knoten, bevor die EC2 Amazon-Instances beendet werden. Wenn eines der beiden Verhaltensweisen angegeben ist, beendet Amazon EMR keine EC2 Amazon-Instances in Kerninstanzgruppen, wenn dies zu HDFS Beschädigungen führen könnte.

Beendigung bei Aufgaben-Abschluss

EMRMit Amazon können Sie Ihren Cluster herunterskalieren, ohne Ihre Arbeitslast zu beeinträchtigen. Amazon setzt während EMR einer Größenänderung ordnungsgemäß YARNHDFS, und andere Daemons auf Kern- und Taskknoten außer Betrieb, ohne Daten zu verlieren oder Jobs zu unterbrechen. Amazon reduziert die Größe der Instance-Gruppen EMR nur, wenn die den Gruppen zugewiesene Arbeit abgeschlossen ist und sie inaktiv sind. Bei YARN NodeManager Graceful Decommission können Sie die Zeit, die ein Knoten auf die Außerbetriebnahme wartet, manuell anpassen.

Die Dauer wird mit einer Eigenschaft in der YARN-site-Konfigurationsklassifizierung eingerichtet. Wenn Sie Amazon EMR Version 5.12.0 und höher verwenden, geben Sie die YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs Eigenschaft an. Geben Sie die YARN.resourcemanager.decommissioning.timeout Eigenschaft bei Verwendung früherer EMR Amazon-Versionen an.

Wenn nach Ablauf des Zeitlimits für die Außerbetriebnahme noch Container oder YARN Anwendungen ausgeführt werden, wird der Knoten zwangsweise außer Betrieb genommen und die betroffenen Container werden auf YARN anderen Knoten neu geplant. Die Standardwert ist 3600 Sekunden (eine Stunde). Sie können den Timeout auf einen extrem hohen Wert festlegen, um die ordnungsgemäße Verkleinerung zu verzögern. Weitere Informationen finden Sie unter Ordnungsgemäße Außerbetriebnahme von YARN Knoten in der Apache Hadoop-Dokumentation.

Aufgabenknoten-Gruppen

Amazon wählt EMR intelligent Instances aus, die keine Aufgaben haben, die für einen Schritt oder eine Anwendung ausgeführt werden, und entfernt diese Instances zunächst aus einem Cluster. Wenn alle Instances im Cluster verwendet werden, EMR wartet Amazon, bis die Aufgaben auf einer Instance abgeschlossen sind, bevor sie aus dem Cluster entfernt wird. Die standardmäßige Leerlaufzeit beträgt eine Stunde. Dieser Wert kann mit der Einstellung YARN.resourcemanager.decommissioning.timeout geändert werden. Amazon verwendet die neue Einstellung EMR dynamisch. Sie können dies auf eine beliebig große Zahl festlegen, um sicherzustellen, dass Amazon EMR keine Aufgaben beendet und gleichzeitig die Clustergröße reduziert.

Core-Knoten-Gruppen

Auf den Core-Knoten müssen YARN NodeManager sowohl HDFS DataNode Daemons als auch Daemons außer Betrieb genommen werden, damit die Instanzgruppe verkleinert werden kann. Durch die schrittweise Reduzierung wird nämlich sichergestelltYARN, dass ein für die Außerbetriebnahme markierter Knoten nur dann in den DECOMMISSIONED Status versetzt wird, wenn keine ausstehenden oder unvollständigen Container oder Anwendungen vorhanden sind. Die Außerbetriebnahme wird direkt beendet, falls es zu Beginn der Außerbetriebnahme keine laufenden Container auf dem Knoten gibt.

Denn HDFS durch eine schrittweise Reduzierung wird sichergestellt, dass die Zielkapazität von groß genug HDFS ist, um alle vorhandenen Blöcke aufzunehmen. Wenn die Zielkapazität nicht groß genug ist, wird nur ein Teil der Core-Instances außer Betrieb genommen, sodass die verbleibenden Knoten die aktuellen Daten verarbeiten können, in denen sie sich befinden. HDFS Sie sollten zusätzliche HDFS Kapazität sicherstellen, um eine weitere Außerbetriebnahme zu ermöglichen. Sie sollten auch versuchen, die Schreib-I/O zu minimieren, bevor Sie versuchen, Instance-Gruppen zu reduzieren. Übermäßiger Schreib-E/A-Vorgang kann den Abschluss des Größenänderungsvorgangs verzögern.

Ein weiterer Faktor ist der Standard-Replikationsfaktor (dfs.replication) in /etc/hadoop/conf/hdfs-site. Bei der Erstellung eines Clusters EMR konfiguriert Amazon den Wert auf der Grundlage der Anzahl der Instances im Cluster: 1 mit 1—3 Instances, 2 für Cluster mit 4—9 Instances und 3 für Cluster mit mehr als 10 Instances.

Warnung
  1. Die Einstellung dfs.replication auf 1 für Cluster mit weniger als vier Knoten kann zu HDFS Datenverlust führen, wenn ein einzelner Knoten ausfällt. Wir empfehlen, für Produktionsworkloads einen Cluster mit mindestens vier Core-Knoten zu verwenden.

  2. Amazon EMR erlaubt Clustern nicht, Kernknoten nach unten zu skalierendfs.replication. Bei dfs.replication = 2 z. B. beträgt die Mindestanzahl von Core-Knoten 2.

  3. Wenn Sie verwaltete Skalierung oder Auto-Scaling verwenden oder die Größe Ihres Clusters manuell ändern möchten, empfehlen wir Ihnen, dfs.replication auf 2 oder höher einzustellen.

Durch die schrittweise Reduzierung können Sie die Anzahl der Kernknoten nicht unter den HDFS Replikationsfaktor reduzieren. Auf diese Weise können HDFS Dateien aufgrund unzureichender Replikate geschlossen werden. Um dieses Limit zu umgehen, verringern Sie den Replikationsfaktor und starten Sie den NameNode Daemon neu.

Das EMR Scale-Down-Verhalten von Amazon konfigurieren

Anmerkung

Die Scale-Down-Verhaltensoption „Zur Instance-Stunde beenden“ wird für EMR Amazon-Version 5.10.0 und höher nicht mehr unterstützt. Die folgenden Optionen für das Scale-Down-Verhalten werden nur in der EMR Amazon-Konsole für die Versionen 5.1.0 bis 5.9.1 angezeigt.

Sie können Amazon verwenden AWS Management Console, um das AWS CLI Scale-Down-Verhalten EMR API zu konfigurieren, wenn Sie einen Cluster erstellen.

Console
Um das Scale-Down-Verhalten mit der Konsole zu konfigurieren
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die EMR Amazon-Konsole unter https://console.aws.amazon.com/emr.

  2. Wählen Sie EC2 im linken Navigationsbereich unter EMRon die Option Clusters und anschließend Create cluster aus.

  3. Wählen Sie im Abschnitt Optionen für Clusterskalierung und -bereitstellung die Option Benutzerdefinierte automatische Skalierung verwenden aus. Wählen Sie unter Benutzerdefinierte automatische Skalierungsrichtlinien die Plus-Aktionsschaltfläche aus, um Skalierungsrichtlinien hinzuzufügen. Wir empfehlen, dass Sie sowohl Richtlinien für die Skalierung als auch für die horizontale Skalierung hinzufügen. Wenn Sie nur einen Satz von Richtlinien hinzufügen, EMR führt Amazon nur eine unidirektionale Skalierung durch und Sie müssen die anderen Aktionen manuell ausführen.

  4. Wählen Sie alle anderen Optionen aus, die für Ihren Cluster gelten.

  5. Um Ihren Cluster jetzt zu starten, wählen Sie Cluster erstellen aus.

AWS CLI
Um das Scale-Down-Verhalten zu konfigurieren, verwenden Sie AWS CLI
  • Verwenden Sie für die --scale-down-behavior-Option entweder TERMINATE_AT_INSTANCE_HOUR oder TERMINATE_AT_TASK_COMPLETION.