

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

# Esecuzione di un'applicazione Spark con Apache Livy per Amazon EMR su EKS
<a name="job-runs-apache-livy-run-spark"></a>

Prima di poter eseguire un'applicazione Spark con Apache Livy, assicurati di aver completato i passaggi in [Configurazione di Apache Livy per Amazon EMR su EKS e Guida [introduttiva ad Apache Livy](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/job-runs-apache-livy-install.html) per Amazon EMR su EKS](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/job-runs-apache-livy-setup.html).

Puoi usare Apache Livy per eseguire due tipi di applicazioni:
+ Sessioni batch: un tipo di carico di lavoro Livy per inviare lavori batch Spark.
+ Sessioni interattive: un tipo di carico di lavoro Livy che fornisce un'interfaccia programmatica e visiva per eseguire le query Spark.

**Nota**  
I driver pod ed executor di sessioni diverse possono comunicare tra loro. I namespace non garantiscono alcuna sicurezza tra i pod. Kubernetes non consente autorizzazioni selettive su un sottoinsieme di pod all'interno di un determinato spazio dei nomi.

## Esecuzione di sessioni in batch
<a name="job-runs-apache-livy-run-spark-batch"></a>

Per inviare un processo batch, utilizzare il comando seguente.

```
curl -s -k -H 'Content-Type: application/json' -X POST \
      -d '{
            "name": "my-session",
            "file": "entryPoint_location (S3 or local)",
            "args": ["argument1", "argument2", ...],
            "conf": {
                "spark.kubernetes.namespace": "<spark-namespace>",
                "spark.kubernetes.container.image": "public.ecr.aws/emr-on-eks/spark/emr-7.12.0:latest",
                "spark.kubernetes.authenticate.driver.serviceAccountName": "<spark-service-account>"
            }
          }' <livy-endpoint>/batches
```

Per monitorare il processo batch, utilizzare il comando seguente.

```
curl -s -k -H 'Content-Type: application/json' -X GET <livy-endpoint>/batches/my-session
```

## Esecuzione di sessioni interattive
<a name="job-runs-apache-livy-run-spark-interactive"></a>

Per eseguire sessioni interattive con Apache Livy, consulta i passaggi seguenti.

1. Assicurati di avere accesso a un notebook Jupyter ospitato autonomamente o gestito, come un notebook AI Jupyter. SageMaker [Sul tuo notebook jupyter deve essere installato sparkmagic.](https://github.com/jupyter-incubator/sparkmagic/blob/master/README.md)

1. Crea un bucket per la configurazione di Spark. `spark.kubernetes.file.upload.path` Assicurati che l'account del servizio Spark abbia accesso in lettura e scrittura al bucket. Per maggiori dettagli su come configurare l'account del servizio Spark, consulta Configurazione delle autorizzazioni di accesso con i ruoli IAM per gli account di servizio (IRSA)

1. Carica sparkmagic nel notebook Jupyter con il comando. `%load_ext sparkmagic.magics`

1. Esegui il comando `%manage_spark` per configurare il tuo endpoint Livy con il notebook Jupyter. **Scegli la scheda **Aggiungi endpoint**, scegli il tipo di autenticazione configurato, aggiungi l'endpoint Livy al notebook, quindi scegli Aggiungi endpoint.**

1. **Esegui `%manage_spark` di nuovo per creare il contesto Spark e poi vai alla sessione Crea.** Scegli l'endpoint Livy, specifica un nome di sessione univoco, scegli una lingua e aggiungi le seguenti proprietà.

   ```
   {
     "conf": {
       "spark.kubernetes.namespace": "livy-namespace",
       "spark.kubernetes.container.image": "public.ecr.aws/emr-on-eks/spark/emr-7.12.0:latest",
       "spark.kubernetes.authenticate.driver.serviceAccountName": "<spark-service-account>", 
       "spark.kubernetes.file.upload.path": "<URI_TO_S3_LOCATION_>"
     }
   }
   ```

1. Invia l'applicazione e attendi che crei il contesto Spark.

1. Per monitorare lo stato della sessione interattiva, esegui il comando seguente.

   ```
   curl -s -k -H 'Content-Type: application/json' -X GET livy-endpoint/sessions/my-interactive-session
   ```

## Monitoraggio delle applicazioni Spark
<a name="job-runs-apache-livy-run-ui"></a>

Per monitorare lo stato di avanzamento delle tue applicazioni Spark con l'interfaccia utente Livy, usa il link. `http://<livy-endpoint>/ui`