

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

# Registri delle applicazioni Spark
<a name="spark-operator-monitoring-application-logs"></a>

Puoi definire questa configurazione nel modo seguente.

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

**Di seguito sono riportate le opzioni di configurazione disponibili in MonitoringConfiguration.**
+ **Immagine** (opzionale): URL dell'immagine dell'agente di registro. Verrà recuperato da emr ReleaseLabel se non fornito.
+ **s3 MonitoringConfiguration** — Imposta questa opzione per l'archiviazione su Amazon S3.
  + **logURI** (obbligatorio): il percorso del bucket Amazon S3 in cui desideri archiviare i log. Il primo esempio mostra che la rotazione dei log non è abilitata:

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

    La rotazione dei log è abilitata per impostazione predefinita. È possibile utilizzare sia un file ruotato (con indice incrementale) sia un file corrente (uno senza il timbro della data).

    ```
    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**: la chiave di configurazione verso cui configurare l'inoltro. Amazon CloudWatch
  + **log GroupName** (obbligatorio): il nome del gruppo di log di Cloudwatch a cui desideri inviare i log. Il gruppo viene creato automaticamente se non esiste.
  + **log StreamNamePrefix** (opzionale): il nome del flusso di log a cui si desidera inviare i log. Il valore predefinito è una stringa vuota. Il formato in CloudWatch è il seguente:

    ```
    ${{{logStreamNamePrefix}}}/${{{APPLICATION NAME}}}-${{{APPLICATION UID}}}/${{{POD NAME}}}/stdout
    ${{{logStreamNamePrefix}}}/${{{APPLICATION NAME}}}-${{{APPLICATION UID}}}/${{{POD NAME}}}/stderr
    ```
+ **side CarResources** (opzionale): la chiave di configurazione per impostare i limiti delle risorse sul contenitore sidecar Fluentd lanciato.
  + **memoryLimit (opzionale) — Il limite** di memoria. Regola secondo necessità. L'impostazione predefinita è 250 Mi.
  + **CPULimit: il limite** della CPU. Regola secondo necessità. L'impostazione predefinita è 500 m.
+ **container LogRotationConfiguration** (opzionale): controlla il comportamento di rotazione del log del contenitore. È abilitato per impostazione predefinita.
  + **rotationSize** (obbligatorio): specifica la dimensione del file per la rotazione del registro. L'intervallo di valori possibili è compreso tra 2 KB e 2 GB. 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 1.500 MB. Il valore predefinito è 2 GB.
  + **max FilesToKeep** (obbligatorio) — Speciifica il numero massimo di file da conservare nel contenitore dopo la rotazione. Il valore minimo è 1. Il valore massimo è 50. Il valore predefinito è 10.

Dopo aver configurato MonitoringConfiguration, dovresti essere in grado di controllare i log del driver dell'applicazione Spark e dell'executor su un bucket Amazon S3 o su entrambi. CloudWatch Per un bucket Amazon S3, devi attendere 2 minuti prima che il primo file di log venga svuotato. Ad esempio, in Amazon S3, il percorso del bucket appare come segue:

**Amazon S3** **> **Benne > > **{{Bucket name}}****> stderr.gz {{Spark application name - UUID}} {{Pod Name}}**

O:

**Amazon S3** **> **Benne > > **{{Bucket name}}****> stdout.gz {{Spark application name - UUID}} {{Pod Name}}**

In CloudWatch, il percorso appare come segue:

**CloudWatch**> **Gruppi di log** > **{{Log group name}}**>{{Spark application name - UUID}}/{{Pod name}}**/stderr**

O:

**CloudWatch****> **Gruppi di log** > >/**{{Log group name}}**/stdout {{Spark application name - UUID}} {{Pod name}}**