Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exécution d'une application Spark avec Apache Livy pour Amazon sur EMR EKS
Avant de pouvoir exécuter une application Spark avec Apache Livy, assurez-vous d'avoir suivi les étapes décrites dans Configuration d'Apache Livy pour Amazon EMR sur EKS et Démarrage avec Apache Livy pour Amazon sur. EMR EKS
Vous pouvez utiliser Apache Livy pour exécuter deux types d'applications :
-
Sessions par lots : type de charge de travail Livy permettant de soumettre des tâches par lots Spark.
-
Sessions interactives : type de charge de travail Livy qui fournit une interface programmatique et visuelle pour exécuter des requêtes Spark.
Note
Les pods pilote et exécuteur issus de différentes sessions peuvent communiquer entre eux. Les espaces de noms ne garantissent aucune sécurité entre les pods. Kubernetes n'autorise pas d'autorisations sélectives sur un sous-ensemble de pods dans un espace de noms donné.
Exécution de sessions par lots
Pour soumettre un traitement par lots, utilisez la commande suivante.
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
Pour surveiller votre traitement par lots, utilisez la commande suivante.
curl -s -k -H 'Content-Type: application/json' -X GET
<livy-endpoint>
/batches/my-session
Organisation de sessions interactives
Pour exécuter des sessions interactives avec Apache Livy, suivez les étapes ci-dessous.
-
Assurez-vous d'avoir accès à un bloc-notes Jupyter auto-hébergé ou géré, tel qu'un SageMaker bloc-notes Jupyter. Sparkmagic
doit être installé sur votre bloc-notes Jupyter. -
Créez un bucket pour la configuration de Spark
spark.kubernetes.file.upload.path
. Assurez-vous que le compte de service Spark dispose d'un accès en lecture et en écriture au bucket. Pour plus de détails sur la configuration de votre compte de service Spark, consultez Configuration des autorisations d'accès avec IAM des rôles pour les comptes de service (IRSA) -
Chargez sparkmagic dans le bloc-notes Jupyter à l'aide de la commande.
%load_ext sparkmagic.magics
-
Exécutez la commande
%manage_spark
pour configurer votre point de terminaison Livy avec le bloc-notes Jupyter. Choisissez l'onglet Ajouter des points de terminaison, choisissez le type d'authentification configuré, ajoutez le point de terminaison Livy au bloc-notes, puis choisissez Ajouter un point de terminaison. -
Exécutez à
%manage_spark
nouveau pour créer le contexte Spark, puis accédez à la session Create. Choisissez le point de terminaison Livy, spécifiez un nom de session unique, choisissez une langue, puis ajoutez les propriétés suivantes.{ "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_>
" } } -
Soumettez l'application et attendez qu'elle crée le contexte Spark.
-
Pour contrôler l'état de la session interactive, exécutez la commande suivante.
curl -s -k -H 'Content-Type: application/json' -X GET
livy-endpoint
/sessions/my-interactive-session
Surveillance des applications Spark
Pour suivre la progression de vos applications Spark avec l'interface utilisateur Livy, utilisez le lienhttp://<livy-endpoint>/ui
.