Exécution d'une application Spark avec Apache Livy pour Amazon sur EMR EKS - Amazon EMR

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.

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

  2. Créez un bucket pour la configuration de Sparkspark.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)

  3. Chargez sparkmagic dans le bloc-notes Jupyter à l'aide de la commande. %load_ext sparkmagic.magics

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

  5. 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_>" } }
  6. Soumettez l'application et attendez qu'elle crée le contexte Spark.

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