Wie behebe ich den Ausfall eines Primärknotens mit dem Fehler „502 Bad Gateway“ oder „504 Gateway Timeout“ in Amazon EMR?
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
- 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.
- 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.
- 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
- Ermitteln Sie, ob die Primär-Instance-Statusprüfung fehlgeschlagen ist, indem Sie die Metriken der Instance-Statusprüfung anzeigen.
- Beheben Sie den Fehler bei der Instance-Statusüberprüfung. Beachten Sie, dass das Starten und Stoppen Ihrer EC2-Instance zur Beendigung des EMR-Clusters führt.
Beheben Sie Probleme mit Primärknoten, bei denen der Beendigungsschutz deaktiviert ist und der Cluster bereits beendet wurde
- Schalten Sie den Beendigungsschutz ein, während Sie einen neuen EMR-Cluster starten.
- Wechseln Sie zu einem größeren Instance-Typ. Weitere Informationen finden Sie unter Unterstützte Instance-Typen in Amazon EMR.
- Amazon-CloudWatch-Alarme für die Speicher- und Festplattenauslastung des EMR-Primärknotens aktivieren
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Monat