View a markdown version of this page

Memorizzazione dei log - Amazon EMR

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

Memorizzazione dei log

Per monitorare l'avanzamento dei lavori su EMR Serverless e risolvere i problemi relativi ai processi, scegliete in che modo EMR Serverless archivia e gestisce i log delle applicazioni. Quando invii l'esecuzione di un processo, specifica lo storage gestito, Amazon S3 e Amazon come opzioni di registrazione. CloudWatch

Con CloudWatch, specifica i tipi e le posizioni dei log che desideri utilizzare oppure accetta i tipi e le posizioni predefiniti. Per ulteriori informazioni sui CloudWatch log, fare riferimento aRegistrazione per EMR Serverless con Amazon CloudWatch. Per quanto riguarda lo storage gestito e la registrazione S3, la tabella seguente elenca le posizioni dei log e la disponibilità dell'interfaccia utente che puoi aspettarti se scegli lo storage gestito, i bucket Registrazione per EMR Serverless con bucket Amazon S3 Amazon S3 o entrambi.

Opzione Registri degli eventi Registri di container Interfaccia utente dell'applicazione

Storage gestito

Archiviato in uno storage gestito

Archiviato in uno storage gestito

Supportata

Storage gestito e bucket S3

Archiviato in entrambi i posti

Conservato nel secchio S3

Supportata

Bucket Amazon S3

Conservato nel bucket S3

Conservato nel bucket S3

Non supportato 1

1 Ti consigliamo di mantenere selezionata l'opzione di archiviazione gestita. Altrimenti, non puoi utilizzare le interfacce utente integrate dell'applicazione.

Registrazione per EMR Serverless con storage gestito

Per impostazione predefinita, EMR Serverless archivia i log delle applicazioni in modo sicuro nello storage gestito di Amazon EMR per un massimo di 30 giorni.

Nota

Se disattivi l'opzione predefinita, Amazon EMR non può risolvere i problemi dei tuoi lavori per tuo conto. Esempio: non è possibile accedere Spark-UI dalla console EMR Serverless.

Per disattivare questa opzione da EMR Studio, deselezionate la casella di controllo Consenti di AWS conservare i log per 30 giorni nella sezione Impostazioni aggiuntive della pagina Invia lavoro.

Per disattivare questa opzione da AWS CLI, utilizzate la managedPersistenceMonitoringConfiguration configurazione quando inviate un job run.

{ "monitoringConfiguration": { "managedPersistenceMonitoringConfiguration": { "enabled": false } } }

Se la tua applicazione EMR Serverless si trova in una sottorete privata con endpoint VPC per Amazon S3 e alleghi una policy sugli endpoint per controllare l'accesso, aggiungi le seguenti autorizzazioni per EMR Serverless per archiviare e gestire i log delle applicazioni. Sostituiscili Resource con i AppInfo bucket della tabella delle regioni disponibili in Esempi di policy per sottoreti private che accedono ad Amazon S3. https://docs.aws.amazon.com/emr/latest/ManagementGuide/private-subnet-iampolicy.html#private-subnet-iampolicy-regions

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EMRServerlessManagedLogging", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::prod.us-east-1.appinfo.src", "arn:aws:s3:::prod.us-east-1.appinfo.src/*" ], "Condition": { "StringEquals": { "aws:PrincipalServiceName": "emr-serverless.amazonaws.com", "aws:SourceVpc": "vpc-12345678" } } } ] }

Inoltre, utilizza la chiave aws:SourceVpc condizionale per assicurarti che la richiesta viaggi attraverso il VPC a cui è collegato l'endpoint VPC.

Registrazione per EMR Serverless con bucket Amazon S3

Prima che i tuoi job possano inviare dati di log ad Amazon S3, includi le seguenti autorizzazioni nella policy delle autorizzazioni per il ruolo di runtime del job. Sostituisci amzn-s3-demo-logging-bucket con il nome del bucket di accesso.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Sid": "AllowS3Putobject" } ] }

Per configurare un bucket Amazon S3 in cui archiviare i log provenienti da AWS CLI, utilizza la s3MonitoringConfiguration configurazione all'avvio dell'esecuzione di un job. A tale scopo, fornisci quanto segue --configuration-overrides nella configurazione.

{ "monitoringConfiguration": { "s3MonitoringConfiguration": { "logUri": "s3://amzn-s3-demo-logging-bucket/logs/" } } }

Per i processi batch per i quali non sono abilitati i tentativi, EMR Serverless invia i log al seguente percorso:

'/applications/<applicationId>/jobs/<jobId>'

I log dei driver Spark vengono archiviati nel seguente percorso da EMR Serverless

'/applications/<applicationId>/jobs/<jobId>/SPARK_DRIVER/'

I log degli esecutori di Spark vengono archiviati nel seguente percorso da EMR Serverless

'/applications/<applicationId>/jobs/<jobId>/SPARK_EXECUTOR/<EXECUTOR-ID>'

Il valore < EXECUTOR-ID > è un numero intero.

Le versioni 7.1.0 e successive di EMR Serverless supportano i tentativi di riprova per processi in streaming e processi batch. Se si esegue un processo con i tentativi abilitati, EMR Serverless aggiunge automaticamente un numero di tentativo al prefisso del percorso del registro, in modo da poter distinguere e tenere traccia meglio dei log.

'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/'

Registrazione per EMR Serverless con Amazon CloudWatch

Quando invii un lavoro a un'applicazione EMR Serverless, scegli Amazon CloudWatch come opzione per archiviare i log delle tue applicazioni. Ciò consente di utilizzare funzionalità di analisi dei CloudWatch CloudWatch log come Logs Insights e Live Tail. Puoi anche trasmettere i log da CloudWatch altri sistemi, ad esempio OpenSearch per ulteriori analisi.

EMR Serverless fornisce la registrazione in tempo reale dei registri dei driver. È possibile accedere ai log in tempo reale con la funzionalità CloudWatch live tail o tramite i comandi CloudWatch CLI tail.

Per impostazione predefinita, la CloudWatch registrazione è disabilitata per EMR Serverless. Per abilitarla, utilizzare la configurazione in. AWS CLI

Nota

Amazon CloudWatch pubblica i log in tempo reale, quindi richiede più risorse da parte dei lavoratori. Se scegli una capacità di lavoro ridotta, l'impatto sulla durata del lavoro potrebbe aumentare. Se abiliti la CloudWatch registrazione, ti suggeriamo di scegliere una maggiore capacità di lavoro. È anche possibile che la pubblicazione dei log venga limitata se la velocità delle transazioni al secondo (TPS) è troppo bassa per. PutLogEvents La configurazione della CloudWatch limitazione è globale per tutti i servizi, incluso EMR Serverless. Per ulteriori informazioni, consulta Come posso determinare la limitazione dei dati nei miei log? CloudWatch su AWS re:post.

Autorizzazioni richieste per l'accesso con CloudWatch

Prima che i tuoi processi possano inviare dati di registro ad Amazon CloudWatch, includi le seguenti autorizzazioni nella politica delle autorizzazioni per il ruolo di runtime del lavoro.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:*:123456789012:*" ], "Sid": "AllowLOGSDescribeloggroups" }, { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:123456789012:log-group:my-log-group-name:*" ], "Sid": "AllowLOGSPutlogevents" } ] }

AWS CLI

Per configurare Amazon in CloudWatch modo da archiviare i log per EMR Serverless da AWS CLI, utilizza la cloudWatchLoggingConfiguration configurazione all'avvio dell'esecuzione di un processo. A tale scopo, fornisci le seguenti sostituzioni di configurazione. Facoltativamente, fornisci anche il nome del gruppo di log, il nome del prefisso del log stream, i tipi di log e una chiave di crittografia ARN.

Se non specifichi i valori opzionali, CloudWatch pubblica i log in un gruppo di log predefinito/aws/emr-serverless, con il flusso di log predefinito. /applications/applicationId/jobs/jobId/worker-type

Le versioni 7.1.0 e successive di EMR Serverless supportano i tentativi di ripetizione per processi in streaming e processi batch. Se avete abilitato i tentativi per un job, EMR Serverless aggiunge automaticamente un numero di tentativo al prefisso del percorso del log, in modo da poter distinguere e tenere traccia meglio dei log.

'/applications/<applicationId>/jobs/<jobId>/attempts/<attemptNumber>/worker-type'

Quanto segue dimostra la configurazione minima richiesta per attivare la CloudWatch registrazione di Amazon con le impostazioni predefinite per EMR Serverless:

{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true } } }

L'esempio seguente mostra tutte le configurazioni obbligatorie e opzionali che specificano quando si attiva la registrazione di Amazon CloudWatch per EMR Serverless. I logTypes valori supportati sono elencati anche nel seguente esempio.

{ "monitoringConfiguration": { "cloudWatchLoggingConfiguration": { "enabled": true, // Required "logGroupName": "Example_logGroup", // Optional "logStreamNamePrefix": "Example_logStream", // Optional "encryptionKeyArn": "key-arn", // Optional "logTypes": { "SPARK_DRIVER": ["stdout", "stderr"] //List of values } } } }

Per impostazione predefinita, EMR Serverless pubblica solo i registri dei driver su cui stdout e stderr. CloudWatch Se desideri altri log, specifica un ruolo del contenitore e i tipi di log corrispondenti con il campo. logTypes

L'elenco seguente mostra i tipi di lavoratori supportati che specificano la logTypes configurazione:

Spark
  • SPARK_DRIVER : ["STDERR", "STDOUT"]

  • SPARK_EXECUTOR : ["STDERR", "STDOUT"]

Hive
  • HIVE_DRIVER : ["STDERR", "STDOUT", "HIVE_LOG", "TEZ_AM"]

  • TEZ_TASK : ["STDERR", "STDOUT", "SYSTEM_LOGS"]