Uso della rotazione dei log di container Spark - 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à.

Uso della rotazione dei log di container Spark

Con Amazon EMR 6.11.0 e versioni successive, è possibile attivare la funzionalità di rotazione dei log di container Spark per Amazon EMR su EKS. Anziché generare un singolo file di log stdout o stderr, questa funzionalità ruota il file in base alle dimensioni di rotazione configurate e rimuove i file di log meno recenti dal container.

La rotazione dei log di container Spark consente di evitare potenziali problemi dovuti a file di log Spark di grandi dimensioni generati per processi di streaming o di lunga durata. Ad esempio, potresti avviare un processo Spark di lunga durata e in tal caso il driver Spark creerebbe un file di log di container. Se il processo viene eseguito per ore o giorni e lo spazio su disco nel nodo Kubernetes è limitato, il file di log di container può consumare tutto lo spazio disponibile su disco. Attivando la rotazione dei log di container Spark, dividi il file di log in più file e rimuovi quelli meno recenti.

Per attivare la funzionalità di rotazione dei log di container Spark, configura i seguenti parametri Spark:

containerLogRotationConfiguration

Includi questo parametro in monitoringConfiguration per attivare la rotazione dei log. L'opzione è disabilitata per impostazione predefinita. È necessario utilizzare containerLogRotationConfiguration in aggiunta a s3MonitoringConfiguration.

rotationSize

Il parametro rotationSize specifica la dimensione del file per la rotazione dei log. L'intervallo di valori possibili è compreso tra 2KB e 2GB. La parte relativa all'unità numerica del parametro rotationSize viene trasmessa come numero intero. Poiché i valori decimali non sono supportati, puoi specificare una dimensione di rotazione di 1,5 GB, ad esempio, con il valore 1500MB.

maxFilesToKeep

Il parametro maxFilesToKeep specifica il numero massimo di file da mantenere nel container in seguito alla rotazione. Il valore minimo è 1, quello massimo è 50.

Puoi specificare questi parametri nella sezione monitoringConfiguration dell'API di StartJobRun, come illustrato nell'esempio seguente. In questo esempio, con rotationSize = "10 MB" e maxFilesToKeep = 3, Amazon EMR su EKS ruota i log a 10 MB, genera un nuovo file di log e quindi elimina il file di log meno recente una volta che il numero di file di log arriva a 3.

{ "name": "my-long-running-job", "virtualClusterId": "123456", "executionRoleArn": "iam_role_name_for_job_execution", "releaseLabel": "emr-6.11.0-latest", "jobDriver": { "sparkSubmitJobDriver": { "entryPoint": "entryPoint_location", "entryPointArguments": ["argument1", "argument2", ...], "sparkSubmitParameters": "--class main_class --conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1" } }, "configurationOverrides": { "applicationConfiguration": [ { "classification": "spark-defaults", "properties": { "spark.driver.memory":"2G" } } ], "monitoringConfiguration": { "persistentAppUI": "ENABLED", "cloudWatchMonitoringConfiguration": { "logGroupName": "my_log_group", "logStreamNamePrefix": "log_stream_prefix" }, "s3MonitoringConfiguration": { "logUri": "s3://my_s3_log_location" }, "containerLogRotationConfiguration": { "rotationSize":"10MB", "maxFilesToKeep":"3" } } } }

Per avviare un processo con la rotazione dei log di container Spark, includi un percorso del file json che hai configurato con questi parametri nel comando StartJobRun.

aws emr-containers start-job-run \ --cli-input-json file://path-to-json-request-file