Warum schlägt mein AWS Glue-Job mit der Fehlermeldung „Ausgangsstatus: -100“ fehl? Diagnose: Container auf einem *verlorenen* Knoten veröffentlicht?

Lesedauer: 4 Minute
0

Mein AWS Glue 1.0- oder 0.9-Job ist mit dem folgenden Fehler fehlgeschlagen: „Ausgangsstatus: -100. Diagnose: Container wurde auf einem verloren Knoten veröffentlicht.“

Auflösung

Wenn Ihre Datenquelle JDBC ist, finden Sie weitere Informationen unter Warum schlägt mein AWS Glue-Job mit verlorenen Knoten fehl, wenn ich einen großen Datensatz von Amazon RDS zu Amazon S3 migriere?Wenn Ihre Datenquelle Amazon Simple Storage Service (Amazon S3) ist, verwenden Sie eine oder mehrere der folgenden Methoden, um Fehler beim Verlust von Knoten zu beheben.

**Hinweis:**Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.

Hinzufügen weiterer Datenverarbeitungseinheiten (DPUs)

Standardmäßig haben AWS Glue-Jobs 10 DPUs und verwenden den Workertyp Standard. Eine DPU ist für den Anwendungsmaster reserviert. Bevor Sie weitere DPUs hinzufügen, sollten Sie Folgendes beachten:

  • Das Hinzufügen weiterer DPUs hilft nur, wenn der Job-Workload parallelisiert ist. Wenn Sie die Daten nicht angemessen partitionieren, werden die Daten nicht an die neuen Knoten verteilt, und Sie erhalten die Fehlermeldung „Knoten verloren“. Weitere Informationen finden Sie unter Ermitteln der optimalen DPU-Kapazität.
  • In einigen Fällen können große Dateien zu viele Ressourcen auf einem Knoten verbrauchen, was die Effektivität der Parallelisierung des Job-Workloads verringert. Um dieses Problem zu beheben, stellen Sie sicher, dass große Dateien in einem teilbaren Format vorliegen. Weitere Informationen finden Sie unter Bewährte Methoden zur Skalierung von Apache Spark-Jobs und zur Partitionierung von Daten mit AWS Glue.
  • Je länger ein Job ausgeführt wird, desto mehr Protokolle schreibt der Job auf die Festplatte. Wenn Protokolle das Speicherplatzproblem verursachen, hilft das Hinzufügen weiterer DPUs nicht. In einigen Fällen werden Lost Node-Fehler sowohl durch übermäßiges Protokollieren als auch durch Festplattenüberläufe verursacht.
  • Überprüfen Sie die Protokolle und die Amazon CloudWatch-Metrik glue.ALL.jvm.heap.usage, um speicherintensive Executors zu identifizieren. Wenn einige Executors mehr Speicher verbrauchen als andere, kann ein Datenversatz den Fehler verursachen.

Verwenden Sie die Jobs-API, die AWS Command Line Interface (AWS CLI) oder die AWS Glue-Konsole, um weitere DPUs hinzuzufügen, wenn Sie einen Job erstellen:

  • Jobs-API: Legen Sie die Eigenschaft NumberOfWorkers fest, wenn Sie den CreateJob-Vorgang ausführen.
  • AWS CLI: Legen Sie die Eigenschaft number-of-workers fest, wenn Sie den Befehl create-job ausführen.
  • AWS Glue-Konsole: Erhöhen Sie auf der Seite Auftragseigenschaften konfigurieren unter Sicherheitskonfiguration, Skriptbibliotheken und Auftragsparameter (optional) den Wert für Maximale Kapazität. Dies ist die Anzahl der DPUs für den Job.

Stellen Sie sicher, dass die CloudWatch-Metriken für den Job aktiviert sind. Diese Metriken können Ihnen dabei helfen, die Arbeitsleistung zu überwachen und festzustellen, ob Sie weitere DPUs hinzufügen müssen. Verwenden Sie die Jobs-API, die AWS-CLI oder die AWS Glue-Konsole, um Metriken für einen neuen oder vorhandenen Job zu aktivieren:

  • Jobs-API: Verwenden Sie das Argument --enable-metrics, wenn Sie defaultArguments in den Vorgängen createJob oder updateJob definieren.
  • AWS CLI: Verwenden Sie das Argument --enable-metrics.
  • AWS Glue-Konsole: Stellen Sie unter Überwachungsoptionen die Job-Metriken auf Aktiviert ein.

Ändern des DPU-Workertyps

Abhängig von der Größe Ihres Datensatzes verfügt der Standard-Workertyp möglicherweise nicht über genügend Ressourcen, um zu verhindern, dass der Spark-Anwendung der Arbeitsspeicher ausgeht und dieser auf die Festplatte ausgelagert wird. Um dieses Problem zu lösen, wählen Sie einen Workertyp mit mehr verfügbaren Ressourcen:

  • **Standard (Standard):**Jeder Worker ist 1 DPU (4 vCPUs, 16 GB Arbeitsspeicher) zugeordnet und verfügt über 50 GB Festplattenspeicher.
  • **G.1X:**Jeder Worker ist 1 DPU (4 vCPUs, 16 GB Arbeitsspeicher) zugeordnet und verfügt über 64 GB Festplattenspeicher.
  • **G.2X:**Jeder Worker ist 2 DPUs (8 vCPUs, 32 GB Arbeitsspeicher) zugeordnet und verfügt über 128 GB Festplattenspeicher.

Verwenden Sie die Jobs-API, die AWS-CLI oder die AWS Glue-Konsole, um den Workertyp zu ändern, wenn Sie einen Job erstellen:

  • Jobs-API: Legen Sie die Eigenschaft WorkerType fest, wenn Sie den CreateJob-Vorgang ausführen.
  • AWS CLI: Legen Sie die Eigenschaft worker-type fest, wenn Sie den Befehl create-job ausführen.
  • AWS Glue-Konsole: Wählen Sie auf der Seite Auftragseigenschaften konfigurieren unter Sicherheitskonfiguration, Skriptbibliotheken und Auftragsparameter (optional) eine andere Option für den Workertyp aus.

Verwandte Informationen

Hinzufügen von Aufträgen in AWS Glue

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren