

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Uso da alternância de log do contêiner do Spark
<a name="emr-eks-log-rotation-container"></a>

Com as versões 6.11.0 e posteriores do Amazon EMR, você pode ativar o recurso de alternância de log do contêiner do Spark para o Amazon EMR no EKS. Em vez de gerar um arquivo único de log `stdout` ou `stderr`, esse recurso alterna o arquivo com base na dimensão de alternância configurada e remove os arquivos de log mais antigos do contêiner.

A alternância de logs do contêiner do Spark pode ajudar você a evitar possíveis problemas com grandes arquivos de log do Spark gerados para trabalhos de execução prolongada ou de transmissão. Por exemplo, é possível iniciar um trabalho do Spark de execução prolongada e o driver do Spark gerar um arquivo de log do contêiner. Se o trabalho for executado por horas ou por dias, e houver um espaço em disco limitado no nó do Kubernetes, o arquivo de log do contêiner poderá consumir todo o espaço em disco disponível. Ao ativar a alternância de log do contêiner do Spark, você divide o arquivo de log em vários arquivos e remove os arquivos mais antigos.

Para ativar o recurso de alternância de log do contêiner do Spark, configure os seguintes parâmetros do Spark:

**`containerLogRotationConfiguration`**  
Inclua esse parâmetro em `monitoringConfiguration` para ativar a alternância de log. O recurso é desabilitado por padrão. Você deve usar `containerLogRotationConfiguration` além de `s3MonitoringConfiguration`.

**`rotationSize`**  
O parâmetro `rotationSize` especifica o tamanho do arquivo para a alternância de log. O intervalo de valores possíveis é de `2KB` a `2GB`. A parcela numérica da unidade do parâmetro `rotationSize` é transferida como um número inteiro. Como não há suporte para valores decimais, você pode especificar um tamanho de rotação de 1,5 GB, por exemplo, com o valor `1500MB`.

**`maxFilesToKeep`**  
O parâmetro `maxFilesToKeep` especifica o número máximo de arquivos a serem retidos no contêiner após a alternância ter ocorrido. O valor mínimo é de 1 e o valor máximo é de 50.

Você pode especificar esses parâmetros na seção `monitoringConfiguration` da API `StartJobRun`, como mostra o exemplo a seguir. Neste exemplo, com `rotationSize = "10 MB"` e `maxFilesToKeep = 3`, o Amazon EMR no EKS alterna seus logs em 10 MB, gera um novo arquivo de log e, em seguida, limpa o arquivo de log mais antigo quando o número de arquivos de log atinge três.

```
{
  "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}}"
      }
    }
  }
}
```

Para iniciar uma execução de trabalho com a alternância de log do contêiner do Spark, inclua um caminho para o arquivo JSON que você configurou com esses parâmetros no comando [`StartJobRun`](emr-eks-jobs-submit.md).

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