Registrazione degli eventi dell'applicazione Spark in Athena - Amazon Athena

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à.

Registrazione degli eventi dell'applicazione Spark in Athena

L'editor notebook Athena consente la registrazione standard per Jupyter, Spark e Python. È possibile utilizzarli df.show() per visualizzare PySpark DataFrame i contenuti o print("Output") per visualizzare i valori nell'output della cella. I risultati dei calcoli stdout, stderr e results vengono scritti nella posizione del bucket dei risultati delle query in Amazon S3.

Registrazione degli eventi dell'applicazione Spark su Amazon CloudWatch

Le tue sessioni Athena possono anche scrivere log su Amazon CloudWatch nell'account che stai utilizzando.

Comprensione dei flussi di log e dei gruppi di log

CloudWatch organizza l'attività dei log in flussi di log e gruppi di log.

Flussi di log: un flusso di CloudWatch log è una sequenza di eventi di log che condividono la stessa fonte. Ogni fonte separata di log in CloudWatch Logs costituisce un flusso di log separato.

Gruppi di log: in CloudWatch Logs, un gruppo di log è un gruppo di flussi di log che condividono le stesse impostazioni di conservazione, monitoraggio e controllo degli accessi.

Non vi è alcun limite al numero di flussi di log che possono appartenere a un gruppo di log.

In Athena, quando si avvia una sessione di notebook per la prima volta, Athena crea un gruppo di log in CloudWatch cui viene utilizzato il nome del gruppo di lavoro abilitato per Spark, come nell'esempio seguente.

/aws-athena/workgroup-name

Questo gruppo di log riceve un flusso di log per ogni esecutore della sessione che produce almeno un log eventi. Un esecutore è l'unità di calcolo più piccola che una sessione di notebook può richiedere ad Athena. In CloudWatch, il nome del flusso di log inizia con l'ID della sessione e l'ID dell'esecutore.

Per ulteriori informazioni sui gruppi di CloudWatch log e sui flussi di log, consulta Working with log groups and log stream nella Amazon CloudWatch Logs User Guide.

Utilizzo di oggetti logger standard in Athena per Spark

In una sessione di Athena for Spark, puoi utilizzare i seguenti due oggetti logger standard globali per scrivere log su Amazon: CloudWatch

  • athena_user_logger — Invia i log solo a. CloudWatch Usa questo oggetto quando desideri registrare le informazioni direttamente nelle tue applicazioni Spark, come nell'esempio seguente. CloudWatch

    athena_user_logger.info("CloudWatch log line.")

    L'esempio scrive un evento di registro CloudWatch simile al seguente:

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: CloudWatch log line.
  • athena_shared_logger — Invia lo stesso registro sia a che a destinazione per scopi di supporto. CloudWatch AWS È possibile utilizzare questo oggetto per condividere i log con i team di AWS assistenza per la risoluzione dei problemi, come nell'esempio seguente.

    athena_shared_logger.info("Customer debug line.") var = [...some variable holding customer data...] athena_shared_logger.info(var)

    L'esempio registra la debug riga e il valore della var variabile in CloudWatch Logs e invia una copia di ogni riga a. AWS Support

    Nota

    Per motivi di privacy, il codice di calcolo e i risultati non vengono condivisi con. AWS Assicurati che le tue chiamate a athena_shared_logger scrivano solo le informazioni che desideri rendere visibili a AWS Support.

I logger forniti scrivono eventi tramite Apache Log4j ed ereditano i livelli di registrazione di questa interfaccia. I valori possibili a livello di log sono DEBUG, ERROR, FATAL, INFO, WARN o WARNING. Puoi utilizzare la funzione denominata corrispondente sul logger per produrre questi valori.

Nota

Non ricollegare i nomi athena_user_logger o athena_shared_logger. In questo modo non è possibile scrivere sugli oggetti di registrazione CloudWatch per il resto della sessione.

Esempio: registrazione degli eventi del notebook su CloudWatch

La procedura seguente mostra come registrare gli eventi dei notebook Athena su Amazon CloudWatch Logs.

Per registrare gli eventi dei notebook Athena su Amazon Logs CloudWatch
  1. Segui le istruzioni riportate in Nozioni di base su Apache Spark su Amazon Athena per creare un gruppo di lavoro compatibile con Spark in Athena con un nome univoco. In questo tutorial si utilizza il nome del gruppo di lavoro athena-spark-example.

  2. Segui i passaggi illustrati in Creazione di un notebook per creare un notebook e avviare una nuova sessione.

  3. Nell'editor notebook Athena, in una nuova cella del notebook, inserisci il seguente comando:

    athena_user_logger.info("Hello world.")
  4. Esegui la cella.

  5. Recupera l'ID della sessione corrente effettuando una delle seguenti operazioni:

    • Visualizza l'output della cella (ad esempio ... session=72c24e73-2c24-8b22-14bd-443bdcd72de4).

    • In una nuova cella, esegui il comando magico %session_id.

  6. Salva l'ID della sessione.

  7. Con lo stesso Account AWS che usi per eseguire la sessione del notebook, apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  8. Nel riquadro di navigazione della CloudWatch console, scegli Registra gruppi.

  9. Nell'elenco dei gruppi di log, scegli il gruppo di log con il nome del gruppo di lavoro Athena abilitato per Spark, come nell'esempio seguente.

    /aws-athena/athena-spark-example

    La sezione Log streams (Flussi di log) contiene un elenco di uno o più collegamenti ai flussi di log per il gruppo di lavoro. Ogni nome del flusso di log contiene l'ID di sessione, l'ID dell'esecutore e l'UUID univoco separati da caratteri di barra.

    Ad esempio, se l'ID della sessione è 5ac22d11-9fd8-ded7-6542-0412133d3177 e l'ID dell'esecutore è f8c22d11-9fd8-ab13-8aba-c4100bfba7e2, il nome del flusso di log è simile al seguente esempio.

    5ac22d11-9fd8-ded7-6542-0412133d3177/f8c22d11-9fd8-ab13-8aba-c4100bfba7e2/f012d7cb-cefd-40b1-90b9-67358f003d0b
  10. Scegli il collegamento del flusso di log della tua sessione.

  11. Nella pagina Log events (Eventi di log), visualizza la colonna Message (Messaggio).

    Il log eventi per la cella che hai eseguito è simile al seguente:

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: Hello world.
  12. Torna all'editor notebook Athena.

  13. In una nuova cella, inserisci il seguente codice. Il codice registra una variabile in CloudWatch:

    x = 6 athena_user_logger.warn(x)
  14. Esegui la cella.

  15. Torna alla pagina Registra eventi della CloudWatch console per lo stesso flusso di log.

  16. Il flusso di log ora contiene una voce di log eventi con un messaggio simile al seguente:

    AthenaForApacheSpark: 2022-01-01 12:00:00,000 WARN builtins: 6