Esecuzione di un'applicazione Spark con Apache Livy per Amazon su EMR EKS - Amazon EMR

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 su EMR EKS

Prima di poter eseguire un'applicazione Spark con Apache Livy, assicurati di aver completato i passaggi in Configurazione di Apache Livy per Amazon EKS e Guida introduttiva ad Apache Livy per Amazon EMR su Amazon. EMR EKS

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

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

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 Jupyter. SageMaker Sul tuo notebook jupyter deve essere installato sparkmagic.

  2. 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 il tuo account di servizio Spark, vedi Configurazione delle autorizzazioni di accesso con IAM ruoli per gli account di servizio () IRSA

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

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

  5. 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.3.0:latest", "spark.kubernetes.authenticate.driver.serviceAccountName": "<spark-service-account>", "spark.kubernetes.file.upload.path": "<URI_TO_S3_LOCATION_>" } }
  6. Invia l'applicazione e attendi che crei il contesto Spark.

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

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