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à.
Registrare eventi dell'applicazione Spark in Athena
L'editor notebook Athena consente la registrazione standard per Jupyter, Spark e Python. Puoi utilizzare df.show() per visualizzare i contenuti di PySpark DataFrame 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.
Registrare eventi dell'applicazione Spark su Amazon CloudWatch
Le tue sessioni Athena possono anche scrivere log su Amazon CloudWatch nell'account che stai utilizzando.
Comprendere i flussi di log e dei gruppi di log
CloudWatch organizza le attività di log in flussi di log e gruppi di log.
Flussi di log: un flusso di log CloudWatch è una sequenza di log eventi che condividono la stessa origine. Ciascuna origine di registri in CloudWatch Logs costituisce un flusso di log distinto.
Gruppi di log: in File di log CloudWatch, 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 che utilizza 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 di sessione e l'ID dell'esecutore.
Per ulteriori informazioni sui gruppi di log e sui flussi di log di CloudWatch, consulta la pagina Working with log groups and log streams (Utilizzo di gruppi di log e flussi di log) nella Guida per l'utente di File di log Amazon CloudWatch.
Utilizzare oggetti logger standard in Athena per Spark
In una sessione di Athena per Spark, puoi utilizzare i seguenti due oggetti logger standard globali per scrivere i log su Amazon CloudWatch:
-
athena_user_logger: invia i log solo a CloudWatch. Utilizza questo oggetto quando desideri registrare le informazioni delle tue applicazioni Spark direttamente su CloudWatch, come nell'esempio seguente.
athena_user_logger.info("CloudWatch log line.")L'esempio scrive un log eventi in CloudWatch nel modo seguente:
AthenaForApacheSpark: 2022-01-01 12:00:00,000 INFO builtins: CloudWatch log line. -
athena_shared_logger: Invia lo stesso log sia a CloudWatch sia a AWS a scopo di supporto. Puoi utilizzare questo oggetto per condividere i log con i team dei servizi AWS 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 riga
debuge il valore della variabilevarin File di log CloudWatch e invia una copia di ogni riga a Supporto.Nota
Per la tua privacy, il codice di calcolo e i risultati non vengono condivisi con AWS. Assicurati che le tue chiamate a
athena_shared_loggerscrivano solo le informazioni che desideri rendere visibili a Supporto.
I logger forniti scrivono eventi tramite Apache Log4jDEBUG, 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, gli oggetti di registrazione non sono in grado di scrivere su CloudWatch per il resto della sessione.
La procedura seguente mostra come registrare gli eventi del notebook Athena in File di log Amazon CloudWatch.
Registrazione degli eventi del notebook Athena in File di log Amazon CloudWatch
-
Segui le istruzioni riportate in Inizia a usare 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. -
Segui i passaggi illustrati in Passaggio 7: creare il proprio notebook per creare un notebook e avviare una nuova sessione.
-
Nell'editor notebook Athena, in una nuova cella del notebook, inserisci il seguente comando:
athena_user_logger.info("Hello world.") -
Esegui la cella.
-
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.
-
-
Salva l'ID della sessione.
-
Con lo stesso Account AWS che stai usando per eseguire la sessione del notebook, apri la console CloudWatch all'indirizzo https://console.aws.amazon.com/cloudwatch/
. -
Nel pannello di navigazione della console CloudWatch, scegli Log groups (Gruppi di log).
-
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-exampleLa 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-0412133d3177e 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 -
Scegli il collegamento del flusso di log della tua sessione.
-
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. -
Torna all'editor notebook Athena.
-
In una nuova cella, inserisci il seguente codice. Il codice registra una variabile in CloudWatch:
x = 6 athena_user_logger.warn(x) -
Esegui la cella.
-
Torna alla pagina Log events (Eventi di log) della console CloudWatch per lo stesso flusso di log.
-
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