Direkt zum Inhalt

Warum wird mein Amazon EMR-Cluster mit dem Fehler „application provisioning failed“ beendet?

Lesedauer: 6 Minute
0

Mein Amazon EMR-Cluster wurde mit dem Fehler „application provisioning failed“ beendet.

Lösung

Wenn Amazon EMR beim Start eines Amazon EMR-Clusters eine bestimmte Software nicht installieren, konfigurieren oder starten kann, erhältst du möglicherweise die Fehlermeldung „application provisioning failed“.

Überprüfe die Amazon EMR-Bereitstellungsprotokolle

Amazon EMR speichert Cluster-Bereitstellungsprotokolle in einem Amazon Simple Storage Service (Amazon S3)-Bucket, den du angibst, wenn du den Cluster startest.

Führe die folgenden Schritte aus:

  1. Öffne die Amazon EMR-Konsole.
  2. Wähle im Navigationsbereich die Option Cluster aus. Wähle dann den ausgefallenen Amazon EMR-Cluster aus, um die Cluster-Details anzuzeigen.
  3. Wähle im Abschnitt Zusammenfassung die Option Mit Fehlern beendet aus und notiere dir die Primärknoten-ID, die in der Fehlermeldung enthalten ist.
  4. Wähle im Abschnitt Cluster-Protokolle die Amazon S3-Standort-URL aus.
  5. Folge dem folgenden Pfad, um zu deinem UUID-Ordner zu navigieren:
    node/example-primary-node-ID/provision-node/apps-phase/0/example-UUID/.
    **Hinweis:**Ersetze example-primary-node-ID durch deine Primärknoten-ID. Ersetze example-UUID durch deine UUID.
  6. Wähle in der daraufhin angezeigten Liste puppet.log.gz aus und klicke auf Öffnen, um die Bereitstellung in einer neuen Browser-Registerkarte anzuzeigen.

Identifiziere die Gründe für Fehler in den Bereitstellungsprotokollen

Nicht unterstützte Konfigurationsparameter können zu Fehlern führen. Falsche Hostnamen, falsche Passwörter oder allgemeine Betriebssystemprobleme können ebenfalls zu Fehlern führen. Durchsuche Protokolle nach verwandten Schlüsselwörtern, einschließlich „error“, „err“ oder „fail“.

Probleme, wenn du mit einer Amazon RDS-Instance eine Verbindung zu einem externen Metastore herstellst

Du kannst einige Amazon EMR-Anwendungen wie Apache Hive, Hue oder Apache Oozie so konfigurieren, dass Daten in einer externen Datenbank wie Amazon Relational Database Service (Amazon RDS) gespeichert werden. Wenn du Verbindungsprobleme mit der externen Datenbank hast, erhältst du eine Fehlermeldung.

Beispiel für eine Fehlermeldung von Hive:

2022-11-26 02:59:36 +0000 /Stage[main]/Hadoop_hive::Init_metastore_schema/Exec[init hive-metastore schema]/returns (notice): org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
2022-11-26 02:59:36 +0000 /Stage[main]/Hadoop_hive::Init_metastore_schema/Exec[init hive-metastore schema]/returns (notice): Underlying cause: java.sql.SQLNonTransientConnectionException : Could not connect to address=(host=hostname)(port=3306)(type=master) : Socket fail to connect to host:hostname, port:3306. hostname
2022-11-26 02:59:36 +0000 /Stage[main]/Hadoop_hive::Init_metastore_schema/Exec[init hive-metastore schema]/returns (notice): SQL Error code: -1

Gehe wie folgt vor, um diesen Art von Fehler zu beheben:

  • Stelle sicher, dass der Hostname, der Benutzer, das Passwort und die Datenbank der Amazon RDS-Instance korrekt sind.
  • Stelle sicher, dass die Regeln für eingehende Amazon RDS-Instance-Sicherheitsgruppen Verbindungen von der Amazon EMR-Sicherheitsgruppe für den Primärknoten zulassen.

Probleme beim Herstellen einer Verbindung zu einem externen KDC

Mit Amazon EMR kannst du ein externes KDC konfigurieren, um eine zusätzliche Sicherheitsebene hinzuzufügen. Du kannst auch eine Vertrauensbeziehung mit einem Active Directory-Server einrichten. Wenn ein Fehler auftritt, wenn du das KDC kontaktierst oder versuchst, einer Domain beizutreten, dann erhältst du eine Fehlermeldung.

Beispiel für eine Fehlermeldung von Puppet:

2022-11-26 03:02:01 +0000 Puppet (err): 'echo "${AD_DOMAIN_JOIN_PASSWORD}" | realm join -v -U "${AD_DOMAIN_JOIN_USER}"@"${CROSS_REALM_TRUST_REALM}" "${CROSS_REALM_TRUST_DOMAIN}"' returned 1 instead of one of [0]
2022-11-26 03:02:01 +0000 /Stage[main]/Kerberos::Ad_joiner/Exec[realm_join]/returns (err): change from 'notrun' to ['0'] failed: 'echo "${AD_DOMAIN_JOIN_PASSWORD}" | realm join -v -U "${AD_DOMAIN_JOIN_USER}"@"${CROSS_REALM_TRUST_REALM}" "${CROSS_REALM_TRUST_DOMAIN}"' returned 1 instead of one of [0]

Gehe wie folgt vor, um diesen Art von Fehler zu beheben:

  • Prüfe, ob du den Kerberos-Bereich richtig geschrieben hast.
  • Prüfe, ob du das KDC-Administratorkennwort richtig eingegeben hast.
  • Überprüfe, ob du den beitretenden Active Directory-Benutzer und das Kennwort richtig geschrieben hast.
  • Stelle sicher, dass Active Directory den beitretenden Benutzer enthält und dass der Benutzer über die richtigen Berechtigungen verfügt.
  • Stelle für KDC und Active Directory, die auf Amazon Elastic Compute Cloud (Amazon EC2) gehostet werden, sicher, dass die KDC- und Active Directory-Sicherheitsgruppenregeln für eingehende Verbindungen von der Amazon EMR-Sicherheitsgruppe für den Primärknoten aus zulassen.
  • Stelle für KDC und Active Directory, die außerhalb von Amazon EC2 gehostet werden, sicher, dass KDC und Active Directory Verbindungen vom Amazon EMR-Cluster, der Virtual Private Cloud (VPC) und das Subnetz zulassen.

Probleme beim Starten von Diensten wie YARN ResourceManager, Hadoop NameNode oder Spark History Server

Mit Amazon EMR kannst du eine benutzerdefinierte Konfiguration aller Anwendungen erstellen, wenn du einen Amazon EMR-Cluster startest. Diese Konfigurationen können jedoch manchmal Dienste von deinem Startvorgang an blockieren. Wenn der Dienst aufgrund eines Problems nicht gestartet werden kann, erhältst du eine Fehlermeldung.

Beispiel für eine Fehlermeldung vom Apache Spark History Server:

2022-11-26 03:34:13 +0000 Puppet (err): Systemd start for spark-history-server failed!journalctl log for spark-history-server:
-- Logs begin at Sat 2022-11-26 03:27:57 UTC, end at Sat 2022-11-26 03:34:13 UTC. --
Nov 26 03:34:10 ip-192-168-1-32 systemd[1]: Starting Spark history-server...
Nov 26 03:34:10 ip-192-168-1-32 spark-history-server[1076]: Starting Spark history-server (spark-history-server):[OK]
Nov 26 03:34:10 ip-192-168-1-32 su[1112]: (to spark) root on none
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: spark-history-server.service: control process exited, code=exited status=1
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: Failed to start Spark history-server.
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: Unit spark-history-server.service entered failed state.  
Nov 26 03:34:13 ip-192-168-1-32 systemd[1]: spark-history-server.service failed.
2022-11-26 03:34:13 +0000 /Stage[main]/Spark::History_server/Service[spark-history-server]/ensure (err): change from 'stopped' to 'running' failed: Systemd start for spark-history-server failed!
journalctl log for spark-history-server:

Gehe wie folgt vor, um diesen Art von Fehler zu beheben:

  • Prüfe, welcher Dienst nicht gestartet werden konnte.
  • Überprüfe deine Konfigurationseinstellungen auf Rechtschreibfehler.
  • Überprüfe das Amazon S3-Protokoll am angegebenen Ort, um die Ursache des Fehlers zu ermitteln. Zum Beispiel s3://example-log-location/example-cluster-ID/node/example-primary-node-ID/applications/example-failed-application/example-failed-service.gz.

Probleme beim Herunterladen oder Installieren von Anwendungen

Wenn Amazon EMR eine Anwendung nicht installieren oder herunterladen kann, schlägt der Amazon EMR-Cluster fehl und die Bereitstellungsprotokolle sind nicht vollständig. Überprüfe das Protokoll stderr.gz, um herauszufinden, was den Fehler verursacht hat.
Beispiel für eine Fehlermeldung:

stderr.gzError Summary
-------------
Disk Requirements:
  At least 2176MB more space needed on the / filesystem.

2022-11-26 03:18:44,662 ERROR Program: Encountered a problem while provisioning
java.lang.RuntimeException: Amazon-linux-extras topics enabling or yum packages installation failed.

Um diese Art von Fehler zu beheben, erhöhe das Amazon Elastic Block Store (Amazon EBS)-Root-Volume, wenn du deinen Amazon EMR-Cluster startest.

Amazon S3-Protokolle sind nicht verfügbar

Wenn Amazon EMR Anwendungen nicht bereitstellen kann und in Amazon S3 keine Protokolle generiert wurden, erhältst du eine Fehlermeldung. Ein Netzwerkfehler könnte dazu geführt haben, dass die Amazon S3-Protokollierung fehlgeschlagen ist.

Gehe wie folgt vor, um diesen Art von Fehler zu beheben:

Ähnliche Informationen

EMR-Cluster konnte nicht bereitgestellt werden

AWS OFFICIALAktualisiert vor 6 Monaten