View a markdown version of this page

Logs da aplicação do Spark - Amazon EMR

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

Logs da aplicação do Spark

Você pode definir essa configuração da maneira apresentada a seguir.

apiVersion: "sparkoperator.k8s.io/v1beta2" kind: SparkApplication metadata: name: spark-pi namespace: namespace spec: type: Scala mode: cluster imagePullPolicy: Always mainClass: org.apache.spark.examples.SparkPi mainApplicationFile: "local:///usr/lib/spark/examples/jars/spark-examples.jar" sparkVersion: "3.3.1" emrReleaseLabel: emr_release_label executionRoleArn: job_execution_role_arn restartPolicy: type: Never volumes: - name: "test-volume" hostPath: path: "/tmp" type: Directory driver: cores: 1 coreLimit: "1200m" memory: "512m" labels: version: 3.3.1 volumeMounts: - name: "test-volume" mountPath: "/tmp" executor: cores: 1 instances: 1 memory: "512m" labels: version: 3.3.1 volumeMounts: - name: "test-volume" mountPath: "/tmp" monitoringConfiguration: image: "log_agent_image" s3MonitoringConfiguration: logUri: "S3_bucket_uri" cloudWatchMonitoringConfiguration: logGroupName: "log_group_name" logStreamNamePrefix: "log_stream_prefix" sideCarResources: limits: cpuLimit: "500m" memoryLimit: "250Mi" containerLogRotationConfiguration: rotationSize: "2GB" maxFilesToKeep: "10"

A seguir, estão apresentadas as opções de configuração disponíveis em monitoringConfiguration.

  • Imagem (opcional): URL da imagem do agente de log. Será buscado por emr ReleaseLabel se não for fornecido.

  • s3 MonitoringConfiguration — Defina essa opção para arquivar no Amazon S3.

    • logUri (necessário): o caminho do bucket do Amazon S3 em que você deseja armazenar seus logs. O primeiro exemplo mostra que a alternância de logs não está habilitada:

      s3://${logUri}/${APPLICATION NAME}-${APPLICATION UID}/${POD NAME}/stdout.gz s3://${logUri}/${APPLICATION NAME}-${APPLICATION UID}/${POD NAME}/stderr.gz

      A alternância de log está habilitada por padrão. Você pode usar tanto um arquivo com alternância (com índice incremental) quanto um arquivo atual (sem carimbo de data/hora).

      s3://${logUri}/${APPLICATION NAME}-${APPLICATION UID}/${POD NAME}/stdout_YYYYMMDD_index.gz s3://${logUri}/${APPLICATION NAME}-${APPLICATION UID}/${POD NAME}/stderr_YYYYMMDD_index.gz
  • cloud WatchMonitoringConfiguration — A chave de configuração para a qual configurar o encaminhamento. Amazon CloudWatch

    • log GroupName (obrigatório) — O nome do grupo de logs do Cloudwatch para o qual você deseja enviar registros. O grupo é criado automaticamente, se não existir.

    • log StreamNamePrefix (opcional) — O nome do fluxo de log para o qual você deseja enviar os logs. O valor padrão é uma string vazia. O formato em CloudWatch é o seguinte:

      ${logStreamNamePrefix}/${APPLICATION NAME}-${APPLICATION UID}/${POD NAME}/stdout ${logStreamNamePrefix}/${APPLICATION NAME}-${APPLICATION UID}/${POD NAME}/stderr
  • side CarResources (opcional) — A chave de configuração para definir limites de recursos no contêiner auxiliar Fluentd lançado.

    • memoryLimit (opcional): o limite de memória. Ajuste de acordo com suas necessidades. O padrão é 250Mi.

    • cpuLimit: o limite da CPU. Ajuste de acordo com suas necessidades. O padrão é 500m.

  • container LogRotationConfiguration (opcional) — Controla o comportamento de rotação do log do contêiner. Ele é habilitado por padrão.

    • rotationSize (necessáriol): especifica o tamanho do arquivo para a alternância de log. O intervalo de valores possíveis é de 2 KB a 2 GB. 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 1.500 MB. O padrão é 2 GB.

    • máximo FilesToKeep (obrigatório) — Especifica o número máximo de arquivos a serem retidos no contêiner após a rotação. O valor mínimo é 1. O valor máximo é 50. O padrão é 10.

Depois de configurar o MonitoringConfiguration, você deve ser capaz de verificar os registros do driver e do executor do aplicativo Spark em um bucket do Amazon S3 ou em ambos. CloudWatch Para um bucket do Amazon S3, você precisa esperar 2 minutos para que o primeiro arquivo de log seja liberado. Por exemplo, no Amazon S3, o caminho do bucket aparece da seguinte maneira:

Amazon S3 > Buckets > > > > Bucket name> stderr.gz Spark application name - UUID Pod Name

Ou:

Amazon S3 > Buckets > > > > Bucket name> stdout.gz Spark application name - UUID Pod Name

Em CloudWatch, o caminho aparece da seguinte forma:

CloudWatch> Grupos de registros > Log group name>Spark application name - UUID/Pod name/stderr

Ou:

CloudWatch> Grupos de registros > Log group name>Spark application name - UUID/Pod name/stdout