Der Amazon EMR-Cluster endet mit NO_SLAVE_LEFT und den Kernknoten FAILED_BY_MASTER - 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.

Der Amazon EMR-Cluster endet mit NO_SLAVE_LEFT und den Kernknoten FAILED_BY_MASTER

Dies passiert in der Regel, da der Beendigungsschutz deaktiviert ist, und alle Core-Knoten überschreiten die Datenträger-Speicherkapazität, die durch einen Schwellenwert für die maximale Auslastung in der yarn-site-Konfigurationsklassifizierung angegeben ist, die der yarn-site.xml-Datei entspricht. Dieser Wert liegt standardmäßig bei 90 %. Wenn die Festplattenauslastung für einen Kernknoten den Auslastungsschwellenwert überschreitet, meldet der YARN-Health Service den Knoten als. NodeManager UNHEALTHY Während sich der Knoten in diesem Zustand befindet, wird er von Amazon EMR gesperrt und ihm werden keine YARN-Container zugeordnet. Wenn der Knoten 45 Minuten lang fehlerhaft bleibt, markiert Amazon EMR die zugehörige EC2 Amazon-Instance zur Kündigung als. FAILED_BY_MASTER Wenn alle EC2 Amazon-Instances, die mit Kernknoten verknüpft sind, für die Kündigung markiert sind, wird der Cluster mit dem Status beendet, NO_SLAVE_LEFT da keine Ressourcen zur Ausführung von Jobs vorhanden sind.

Das Überschreiten der Datenträgernutzung auf einem Core-Knoten könnte eine Kettenreaktion auslösen. Wenn ein einzelner Knoten den Schwellenwert für die Datenträgernutzung aufgrund von HDFS überschreitet, liegen andere Knoten wahrscheinlich auch in der Nähe des Schwellenwerts. Der erste Knoten überschreitet den Schwellenwert für die Datenträgernutzung, daher wird er von Amazon EMR zu einer Sperrliste hinzugefügt. Dies erhöht den Aufwand der Datenträgernutzung für die verbleibenden Knoten, da sie jetzt untereinander HDFS-Daten replizieren, die auf dem gesperrten Knoten verloren gingen. Jeder Knoten wird anschließend auf die gleiche Weise in den Zustand UNHEALTHY versetzt und der Cluster wird schließlich beendet.

Bewährte Methoden und Empfehlungen

Konfigurieren von Cluster-Hardware mit ausreichend Speicher

Wenn Sie einen Cluster erstellen, stellen Sie sicher, dass genügend Core-Knoten vorhanden sind und alle über ausreichend Instance-Speicher und EBS-Speicher-Volumes für HDFS verfügen. Weitere Informationen finden Sie unter Berechnen der erforderlichen HDFS-Kapazität eines Clusters. Sie können auch Core-Instances manuell oder mithilfe der automatischen Skalierung zu vorhandenen Instance-Gruppen hinzuzufügen. Die neuen Instances haben dieselbe Speicherkonfiguration wie andere Instances in der Instance-Gruppe. Weitere Informationen finden Sie unter Verwenden Sie die Amazon EMR-Cluster-Skalierung, um sich an wechselnde Workloads anzupassen.

Aktivieren des Beendigungsschutzes

Beendigungsschutz aktivieren. Auf diese Weise können Sie, wenn ein Core-Node auf der Deny-Liste steht, über SSH eine Verbindung zur zugehörigen EC2 Amazon-Instance herstellen, um Fehler zu beheben und Daten wiederherzustellen. Wenn Sie den Kündigungsschutz aktivieren, beachten Sie, dass Amazon EMR die EC2 Amazon-Instance nicht durch eine neue Instance ersetzt. Weitere Informationen finden Sie unter Verwenden Sie den Kündigungsschutz, um Ihre Amazon EMR-Cluster vor einem versehentlichen Herunterfahren zu schützen.

Erstellen Sie einen Alarm für die MRUnhealthy CloudWatch Nodes-Metrik

Diese Metrik meldet die Anzahl der Knoten mit dem Status UNHEALTHY. Sie entspricht der YARN-Metrik mapred.resourcemanager.NoOfUnhealthyNodes. Sie können eine Benachrichtigung für diesen Alarm einrichten, um über fehlerhafte Knoten informiert zu werden, bevor der 45-Minuten-Timeout erreicht ist. Weitere Informationen finden Sie unter Überwachung von Amazon EMR-Metriken mit CloudWatch.

Anpassen von Einstellungen mit yarn-site

Die folgenden Einstellungen können an Ihre Anwendungsanforderungen angepasst werden. Beispiel: Sie möchten den Schwellenwert für die Datenträgernutzung erhöhen, bei dem ein Knoten UNHEALTHY melden, indem Sie den Wert von yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage erhöhen.

Sie können diese Werte festlegen, wenn Sie einen Cluster mithilfe der yarn-site-Konfigurationsklassifizierung erstellen. Weitere Informationen finden Sie unter Konfigurieren von Anwendungen in den Amazon-EMR-Versionshinweisen. Sie können auch über SSH eine Verbindung zu den EC2 Amazon-Instances herstellen, die mit den Kernknoten verknüpft sind, und dann die Werte /etc/hadoop/conf.empty/yarn-site.xml mithilfe eines Texteditors hinzufügen. Nachdem Sie die Änderung vorgenommen haben, müssen Sie hadoop-yarn-nodemanager wie unten gezeigt neu starten.

Wichtig

Wenn Sie den NodeManager Dienst neu starten, werden aktive YARN-Container beendet, sofern sie nicht yarn.nodemanager.recovery.enabled bei der Erstellung des Clusters auf die true Verwendung der yarn-site Konfigurationsklassifizierung eingestellt sind. Darüber hinaus müssen Sie über die Eigenschaft yarn.nodemanager.recovery.dir das Verzeichnis angeben, in dem der Containerstatus gespeichert werden soll.

sudo /sbin/stop hadoop-yarn-nodemanager sudo /sbin/start hadoop-yarn-nodemanager

Weitere Informationen zu den aktuellen yarn-site-Eigenschaften und Standardwerten finden Sie unter YARN-Standardeinstellungen in der Apache Hadoop-Dokumentation.

Eigenschaft Standardwert Beschreibung

yarn.nodemanager. disk-health-checker.interval-ms

120000

Die Häufigkeit (in Sekunden), mit der die Datenträger-Zustandsprüfung ausgeführt wird.

garn.nodemanager. disk-health-checker. min-healthy-disks

0,25

Der Mindestanteil der Anzahl der Festplatten, die fehlerfrei sein müssen, NodeManager damit neue Container gestartet werden können. Dies entspricht sowohl yarn.nodemanager.local-dirs (standardmäßig /mnt/yarn in Amazon EMR) und yarn.nodemanager.log-dirs (standardmäßig /var/log/hadoop-yarn/containers, was symbolisch mit mnt/var/log/hadoop-yarn/containers in Amazon EMR verknüpft ist).

yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage

90.0

Der maximale Prozentsatz der zulässigen Speicherplatzauslastung, ab der ein Datenträger als fehlerhaft markiert wird. Die Werte können zwischen 0,0 und 100,0 liegen. Wenn der Wert größer oder gleich 100 ist, wird NodeManager geprüft, ob eine volle Festplatte vorhanden ist. Dies gilt für yarn-nodemanager.local-dirs und yarn.nodemanager.log-dirs.

yarn.nodemanager.disk-health-checker.min-free-space-per-disk-mb

0

Der mindestens erforderliche verfügbare Speicherplatz, damit ein Datenträger verwendet werden kann. Dies gilt für yarn-nodemanager.local-dirs und yarn.nodemanager.log-dirs.