Wie behebe ich den Ausfall eines Primärknotens mit dem Fehler „502 Bad Gateway“ oder „504 Gateway Timeout“ in Amazon EMR?

Lesedauer: 3 Minute
0

Mein Amazon-EMR-Primärknoten fällt mit dem Fehler „502 Bad Gateway“ oder „504 Gateway Timeout“ aus.

Kurzbeschreibung

Ein EMR-Primärknoten kann mit einem der folgenden Fehler ausfallen:

The master failed: Error occurred:<html>?? <head><title>502 Bad Gateway</title></head> <body>?? <center><h1>502 Bad Gateway</h1></center> <hr><center>nginx/1.20.0</center>?? </body>?? </html>??

-oder-

The master failed: Error occurred: <html>??<head><title>504 Gateway Time-out</title></head>??<body>??<center><h1>504 Gateway Time-out</h1></center>??<hr><center>nginx/1.16.1</center>??</body>??</html>??

Die Folgenden sind häufige Gründe für diese Fehler:

  • Der Instance-Controller-Daemon befindet sich im Status „Stopp“ oder ist auf der Primärknoten-Instance ausgefallen.
  • Dem Primärknoten geht der Arbeitsspeicher oder der Festplattenspeicher aus.
  • Die Statusprüfungen der Instance von Amazon Elastic Compute Cloud (Amazon EC2) schlagen fehl.

Lösung

Beheben des Daemon-Fehlers im Controller-Daemon der Primärknoten-Instance

Der Instance-Controller (I/C) des Primärknotens ist der Daemon, der mit der EMR-Steuerebene und dem Rest des Clusters kommuniziert. Wenn der Instance-Controller nicht mit der EMR-Steuerebene kommunizieren kann, wird der Primärknoten als fehlerhaft eingestuft und der Cluster wird beendet.

Um dieses Problem zu beheben, analysieren Sie die Instance-Controller-Protokolle, um festzustellen, warum der Prozess fehlgeschlagen ist. Die Instance-Controller-Protokolle befinden sich unter /emr/instance-controller/log/.

Wenn der Beendigungsschutz aktiviert ist, stellen Sie eine SSH-Verbindung zum Primärknoten her und starten Sie den Instance-Controller-Prozess neu.

In Amazon EMR 5.30.0 und höheren Release-Versionen:

1.    Verwenden Sie den folgenden Befehl, um den Status der I/C zu überprüfen:

sudo systemctl status instance-controller.service

2.    Verwenden Sie den folgenden Befehl, um die I/C neu zu starten, wenn der Status inaktiv ist:

sudo systemctl start instance-controller.service

In den Release-Versionen von Amazon EMR 4.x-2.x:

1.    Verwenden Sie den folgenden Befehl, um den Status der I/C zu überprüfen:

sudo /etc/init.d/instance-controller status

2.    Verwenden Sie den folgenden Befehl, um die I/C neu zu starten, wenn der Status inaktiv ist:

sudo /etc/init.d/instance-controller start

Analysieren von Protokolldateien zur Fehlerbehebung von Speicher- und Festplattenproblemen

  1. Wenn der Beendigungsschutz aktiviert ist, verwenden Sie SSH, um eine Verbindung zum Primärknoten herzustellen. Überprüfen Sie anschließend die Protokolldatei für den Instance-Status.
  2. Analysieren Sie Instance-Metriken wie Arbeitsspeicher und Festplatte, die im Instant-Status-Protokoll aufgeführt werden. Sie können diese Metriken mit Linux-Befehlen wie free -m und df -h analysieren.
  3. Ermitteln Sie anhand der Protokolldatei-Ergebnisse, warum der Primärknoten eine hohe Menge an Festplatte oder Arbeitsspeicher verwendet.

Beheben des Fehlers bei der Statusüberprüfung der EC2-Instance des Primärknotens

Beheben Sie Probleme mit Primärknoten, bei denen der Beendigungsschutz deaktiviert ist und der Cluster bereits beendet wurde


AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr