Perché il mio processo su AWS Glue non riesce e viene visualizzato l'errore “Stato di uscita: -100. Diagnostica: Container rilasciato su un nodo *lost*”?

4 minuti di lettura
0

Il mio processo AWS Glue 1.0 o 0.9 non è riuscito con il seguente errore: “Stato di uscita: -100. Diagnostica: Container rilasciato su un nodo lost. “

Risoluzione

Se la tua origine dati è JDBC, consulta Perché il mio lavoro su AWS Glue fallisce a causa della perdita di nodi quando eseguo la migrazione di un set di dati di grandi dimensioni da Amazon RDS ad Amazon S3?Se la tua origine dati è Amazon Simple Storage Service (Amazon S3), utilizza uno o più dei seguenti metodi per risolvere gli errori dei nodi persi.

**Nota:**Se ricevi errori durante l'esecuzione dei comandi dell'interfaccia a riga di comando di AWS, assicurati di utilizzare la versione più recente dell'interfaccia a riga di comando di AWS.

Aggiungi altre unità di elaborazione dati (DPU)

Per impostazione predefinita, i job di AWS Glue hanno 10 DPU e utilizzano il tipo di worker Standard. Una DPU è riservata al master dell'applicazione. Prima di aggiungere altre DPU, considera quanto segue:

  • L'aggiunta di altre DPU è utile solo se il carico di lavoro del lavoro è parallelizzato. Se non stai partizionando i dati in modo appropriato, i dati non vengono distribuiti ai nuovi nodi e ricevi errori nei nodi persi. Per ulteriori informazioni, vedere Determinare la capacità DPU ottimale.
  • In alcuni casi, i file di grandi dimensioni possono consumare troppe risorse su un nodo, il che riduce l'efficacia della parallelizzazione del carico di lavoro. Per ovviare a questo problema, assicuratevi che i file di grandi dimensioni siano in un formato divisibile. Per ulteriori informazioni, consulta le best practice per dimensionare i job di Apache Spark e partizionare i dati con AWS Glue.
  • Più a lungo viene eseguito un processo, maggiore è il numero di log che il processo scrive su disco. Se i log causano problemi di spazio su disco, l'aggiunta di altre DPU non aiuta. In alcuni casi, la perdita di un nodo è causata sia da registrazioni eccessive che da fuoriuscite di disco.
  • Controlla i log e i parametri glue.ALL.jvm.heap.usage Amazon CloudWatch per identificare gli esecutori che consumano memoria. Se alcuni esecutori consumano più memoria di altri, l'errore potrebbe essere causato dall'inclinazione dei dati.

Usa i Jobs API, l'interfaccia a riga di comando AWS (AWS CLI) o la console AWS Glue per aggiungere altre DPU quando crei un lavoro:

  • API Jobs: Impostate la proprietà NumberOfWorkers quando eseguite l'operazioneCreateJob.
  • Interfaccia a riga di comando AWS: Imposta la proprietà del number-of-workersquando esegui il comando create-job.
  • Console AWS Glue: Nella pagina Configura le proprietà del lavoro, in Configurazione di sicurezza, librerie di script e parametri del processo (opzionale), aumenta il valore per Capacità massima. Questo è il numero di DPU per il lavoro.

Assicurati che i parametri di CloudWatch siano abilitati per il lavoro. Questi parametri possono aiutarti a monitorare le prestazioni lavorative e a determinare se è necessario aggiungere altre DPU. Usa l' API Jobs, l'interfaccia a riga di comando di AWS o la console AWS Glue per abilitare le metriche per un lavoro nuovo o esistente:

  • API Jobs: Utilizzate l'argomento --enable-metrics per definire DefaultArguments nelle operazioni CreateJob o UpdateJob.
  • Interfaccia a riga di comando AWS: Usa l'argomento --enable-metrics
  • Console AWS Glue: In Opzioni di monitoraggio, imposta Parametri lavorosu ** ** Abilitato.

Cambia il tipo di operatore DPU

A seconda delle dimensioni del set di dati, il tipo di operatore Standard potrebbe non disporre di risorse sufficienti per impedire che l'applicazione Spark esaurisca la memoria e si diffonda sul disco. Per risolvere questo problema, scegli un tipo di lavoratore con più risorse disponibili:

  • Standard (impostazione predefinita): Ogni worker esegue il mapping su 1 DPU (4 vCPU, 16 GB di memoria) e dispone di 50 GB di spazio su disco.
  • **G.1X:**Ogni worker esegue il mapping su 1 DPU (4 vCPU, 16 GB di memoria) e dispone di 64 GB di spazio su disco.
  • **G.2X:**Ogni worker è mappato su 2 DPU (8 vCPU, 32 GB di memoria) e dispone di 128 GB di spazio su disco.

Usa l'API Jobs, l'interfaccia a riga di comando di AWS o laconsole AWS Glue per modificare il tipo di worker quando crei un job:

  • API Jobs: Impostate la proprietà WorkerType quando eseguite l'operazione CreateJob.
  • Interfaccia a riga di comando AWS: Imposta la proprietà worker-type quando esegui il comando create-job.
  • Console AWS Glue: Nella pagina Configura le proprietà del lavoro , in ** Configurazione di sicurezza, librerie di script e parametri del processo (opzionale)**, scegli un'opzione diversa per Tipo di worker.

Informazioni correlate

Aggiungere lavori in AWS Glue

AWS UFFICIALE
AWS UFFICIALEAggiornata 3 anni fa