Risoluzione dei problemi relativi agli errori di AWS Glue per Ray nei log - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi relativi agli errori di AWS Glue per Ray nei log

AWS Glue fornisce l'accesso ai log che vengono emessi dai processi Ray durante l'esecuzione del processo. Se si riscontrano errori o comportamenti imprevisti nei processi Ray, raccogliere innanzitutto le informazioni dai log per determinare la causa dell'errore. Forniamo log simili anche per le sessioni interattive. I log delle sessioni sono forniti con il prefisso /aws-glue/ray/sessions.

Le righe di log vengono inviate a CloudWatch in tempo reale man mano che il processo viene eseguito. Le istruzioni di stampa vengono aggiunte ai log di CloudWatch al termine dell'esecuzione. I log vengono conservati per due settimane dopo l'esecuzione di un processo.

Ispezione dei log dei processi Ray

Quando un processo non riesce, raccogli il nome e l'ID di esecuzione del processo. Sono disponibili nella console AWS Glue. Accedi alla pagina del processo, quindi passa alla scheda Runs (Esecuzioni). I log dei processi Ray sono archiviati nei seguenti gruppi di log CloudWatch dedicati.

  • /aws-glue/ray/jobs/script-log/: archivia i log emessi dallo script principale di Ray.

  • /aws-glue/ray/jobs/ray-monitor-log/: archivia i log emessi dal processo autoscaler di Ray. Questi log vengono generati per il nodo principale e non per altri nodi worker.

  • /aws-glue/ray/jobs/ray-gcs-logs/: archivia i log emessi dal processo GCS (global control store). Questi log vengono generati per il nodo principale e non per altri nodi worker.

  • /aws-glue/ray/jobs/ray-process-logs/: archivia i log emessi da altri processi Ray (principalmente l'agente del pannello di controllo) in esecuzione sul nodo principale. Questi log vengono generati per il nodo principale e non per altri nodi worker.

  • /aws-glue/ray/jobs/ray-raylet-logs/: archivia i log emessi da ciascun processo raylet. Questi log vengono raccolti in un unico flusso per ogni nodo worker, incluso il nodo principale.

  • /aws-glue/ray/jobs/ray-worker-out-logs/: archivia i log stdout per ogni worker nel cluster. Questi log vengono generati per ogni nodo worker, incluso il nodo principale.

  • /aws-glue/ray/jobs/ray-worker-err-logs/: archivia i log stderr per ogni worker nel cluster. Questi log vengono generati per ogni nodo worker, incluso il nodo principale.

  • /aws-glue/ray/jobs/ray-runtime-env-log/: archivia i log relativi al processo di configurazione di Ray. Questi log vengono generati per ogni nodo worker, incluso il nodo principale.

Risoluzione degli errori relativi ai processi Ray

Per comprendere l'organizzazione dei gruppi di log di Ray e per individuare i gruppi di log che consentiranno di risolvere gli errori, è utile disporre di informazioni di base sull'architettura Ray.

In AWS Glue ETL, un worker corrisponde a un'istanza. Quando si configurano i worker per un processo AWS Glue, si impostano il tipo e la quantità di istanze dedicate al processo. Ray usa il termine worker in diversi modi.

Ray utilizza i termini nodo principale e nodo worker per distinguere le responsabilità di un'istanza all'interno di un cluster Ray. Un nodo worker Ray può ospitare processi con più attori che eseguono calcoli per ottenere il risultato del calcolo distribuito. Gli attori che eseguono una replica di una funzione sono chiamati repliche. Gli attori di replica possono anche essere chiamati processi worker. Le repliche possono essere eseguite anche sul nodo principale, così chiamato perché esegue processi aggiuntivi per coordinare il cluster.

Ogni attore che contribuisce al calcolo genera il proprio flusso di log. Questo ci fornisce alcune informazioni dettagliate:

  • Il numero minimo di processi che emettono i log potrebbe essere maggiore del numero di worker assegnati al processo. Spesso, ogni core di ogni istanza ha un attore.

  • I nodi Ray principali emettono log di avvio e di gestione dei cluster. Al contrario, i nodi worker Ray emettono solo i log relativi al lavoro svolto su di essi.

Per ulteriori informazioni sull'architettura di Ray, consulta Whitepaper sull'architettura nella documentazione di Ray.

Area problematica: accesso ad Amazon S3

Controlla il messaggio di errore dell'esecuzione del processo. Se ciò non fornisce informazioni sufficienti, controlla /aws-glue/ray/jobs/script-log/.

Area problematica: gestione delle dipendenze PIP

Controlla /aws-glue/ray/jobs/ray-runtime-env-log/.

Area problematica: ispezione dei valori intermedi nel processo principale

Scrivi su stderr o stdout dal tuo script principale e recupera i log da /aws-glue/ray/jobs/script-log/.

Area problematica: ispezione dei valori intermedi in un processo secondario

Scrivi su stderr o stdout dalla funzione remote. Quindi, recupera i log da /aws-glue/ray/jobs/ray-worker-out-logs/ o /aws-glue/ray/jobs/ray-worker-err-logs/. La funzione potrebbe essere stata eseguita su qualsiasi replica, quindi potrebbe essere necessario esaminare più log per trovare l'output previsto.

Area problematica: interpretazione degli indirizzi IP nei messaggi di errore

In alcune situazioni di errore, il processo potrebbe emettere un messaggio di errore contenente un indirizzo IP. Questi indirizzi IP sono temporanei e vengono utilizzati dal cluster per identificare i nodi e per la comunicazione tra essi. I log di un nodo vengono pubblicati in un flusso di log con un suffisso univoco basato sull'indirizzo IP.

In CloudWatch, è possibile filtrare i log per controllare quelli specifici di questo indirizzo IP identificando tale suffisso. Ad esempio, dati FAILED_IP e JOB_RUN_ID, è possibile identificare il suffisso con:

filter @logStream like /JOB_RUN_ID/ | filter @message like /IP-/ | parse @message "IP-[*]" as ip | filter ip like /FAILED_IP/ | fields replace(ip, ":", "_") as uIP | stats count_distinct by uIP as logStreamSuffix | display logStreamSuffix