

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
<a name="emr-eks-log-rotation-container"></a>

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`](emr-eks-jobs-submit.md).

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