Warum ist mein Amazon-EMR-Cluster nicht erreichbar?

Lesedauer: 3 Minute
0

Ich kann keine Verbindung zu meinem Amazon-EMR-Cluster herstellen.

Kurzbeschreibung

Im Folgenden sind häufige Gründe dafür aufgeführt, dass Ihr EMR-Cluster möglicherweise nicht erreichbar ist:

  • In den Sicherheitsgruppenregeln liegt ein Berechtigungsproblem vor.
  • Die Netzwerkeinrichtung ist für Cluster, die in einem privaten Subnetz bereitgestellt werden, falsch.
  • Es gibt ein Problem mit der Einrichtung der Cluster-Authentifizierung.
  • In den Clusterknoten gibt es Ressourcenbeschränkungen.
  • Der Amazon-EMR-Service-Daemon ist gestoppt.

Lösung

Regeln für Amazon-EMR-Sicherheitsgruppen

1.    Stellen Sie sicher, dass die Sicherheitsgruppenregeln richtig sind. Weitere Informationen finden Sie unter Arbeiten mit von Amazon EMR verwalteten Sicherheitsgruppen.

2.    Stellen Sie sicher, dass TCP auf Port 8443 zulässig ist. Port 8443 ermöglicht es dem Cluster-Manager, mit dem Cluster-Hauptknoten zu kommunizieren.

3.    Stellen Sie sicher, dass SSH auf Port 22 zulässig ist, wenn Sie versuchen, über SSH eine Verbindung zum Cluster herzustellen.

  1.     Wenn externe Benutzer oder Anwendungen den EMR-Cluster nicht erreichen können, überprüfen Sie die zugehörigen Regeln, die in verwalteten Sicherheitsgruppen festgelegt sind. Überprüfen Sie auch die Regeln in zusätzlichen Sicherheitsgruppen.

EMR-Cluster in einem privaten Subnetz

Überprüfen Sie zusätzlich zu den im vorherigen Abschnitt genannten Punkten Folgendes für EMR-Cluster, die sich in einem privaten Subnetz befinden:

1.    Stellen Sie sicher, dass die zusätzliche verwaltete Sicherheitsgruppe für den Servicezugang hinzugefügt wurde. Stellen Sie sicher, dass die Regeln es dem Cluster-Manager ermöglichen, mit den Clusterknoten zu kommunizieren. Weitere Informationen finden Sie unter Von Amazon EMR verwaltete Sicherheitsgruppe für den Servicezugang (private Subnetze).

2.    Wenn Sie einen Bastion-Host verwenden und Amazon EMR nicht über den Bastion-Host erreichen können, gehen Sie wie folgt vor:

  • Stellen Sie sicher, dass die Bastion-Host-Sicherheitsgruppe eingehenden Datenverkehr vom Clientsystem zulässt.
  • Stellen Sie sicher, dass die EMR-Cluster-Sicherheitsgruppen eingehenden Datenverkehr vom Bastion-Host zulassen.

Da die Netzwerkkonfigurationen variieren, stellen Sie sicher, dass die End-to-End-Verbindung ordnungsgemäß eingerichtet ist und keine schwarzen Löcher aufweist.

Methoden der Authentifizierung

Gehen Sie wie folgt vor, um sicherzustellen, dass die Authentifizierung richtig eingerichtet ist:

1.    Wenn für die Authentifizierung ein Amazon-Elastic-Compute-Cloud-Schlüsselpaar (Amazon EC2) verwendet wird, überprüfen Sie, ob es richtig erstellt und konfiguriert wurde. Weitere Informationen finden Sie unter Verwenden eines Amazon-EC2-Schlüsselpaars für SSH-Anmeldeinformationen.

2.    Wenn die Authentifizierung Kerberos verwendet, überprüfen Sie, ob es richtig konfiguriert ist. Weitere Informationen finden Sie unter Verwenden der Kerberos-Authentifizierung.

Ressourcenbeschränkungen in den Clusterknoten

1.    Stellen Sie sicher, dass sich der zugrunde liegende Hauptknoten im laufenden Zustand befindet und nicht beendet ist.

2.    Überprüfen Sie das Instance-State-Protokoll des Hauptknotens, um festzustellen, wie Ressourcen verwendet werden.

Führen Sie den folgenden Befehl aus, um nach dem wichtigsten CPU-Benutzer zu suchen:

ps auxwww --sort -%cpu | head -10

Führen Sie den folgenden Befehl aus, um die Leistung des Kernels zu überprüfen:

dmesg | tail -n 25

Führen Sie den folgenden Befehl aus, um Ihren Speichernutzung zu überprüfen:

free -m

Führen Sie den folgenden Befehl aus, um Ihren Festplattennutzung zu überprüfen:

df -h

EMR-Cluster-Daemonen

Der Instance-Controller (I/C) des Hauptkotens ist der Daemon, der auf den Clusterknoten läuft. Der Instance-Controller kommuniziert mit der Amazon-EMR-Steuerebene und dem Rest des Clusters. Führen Sie die folgenden Befehle aus, um sicherzustellen, dass es sich im Status „Wird ausgeführt“ befindet:

Führen Sie den folgenden Befehl aus, um den Status des Instance-Controllers zu überprüfen:

sudo systemctl status instance-controller

Führen Sie den folgenden Befehl aus, um den Instance-Controller zu starten:

sudo systemctl start instance-controller

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr