Utiliser Serverless pour Apache Spark avec des notebooks gérés

Cette page explique comment exécuter un fichier notebook sur Spark sans serveur dans une instance de notebooks gérés Vertex AI Workbench à l'aide de Google Cloud Serverless pour Apache Spark.

Votre instance de notebooks gérés peut envoyer le code d'un fichier notebook à exécuter sur le service Serverless pour Apache Spark. Le service exécute le code sur une infrastructure de calcul gérée qui effectue un scaling automatique des ressources en fonction des besoins. Par conséquent, vous n'avez pas besoin de provisionner et de gérer votre propre cluster.

Les frais Serverless pour Apache Spark ne s'appliquent qu'au moment où la charge de travail est exécutée.

Conditions requises

Pour exécuter un fichier notebook sur Serverless pour Apache Spark, consultez les exigences suivantes.

  • Votre session Serverless pour Apache Spark doit s'exécuter dans la même région que votre instance de notebooks gérés.

  • La contrainte d'exigence de connexion OS Login (constraints/compute.requireOsLogin) ne doit pas être activée pour votre projet. Consultez Gérer OS Login dans une organisation.

  • Pour exécuter un fichier notebook sur Serverless pour Apache Spark, vous devez fournir un compte de service doté d'autorisations spécifiques. Vous pouvez accorder ces autorisations au compte de service par défaut ou fournir un compte de service personnalisé. Consultez la section Autorisations de cette page.

  • Votre session Serverless pour Apache Spark utilise un réseau de cloud privé virtuel (VPC) pour exécuter des charges de travail. Le sous-réseau VPC doit répondre à des exigences spécifiques. Consultez les exigences dans la section Configuration du réseauGoogle Cloud Serverless pour Apache Spark.

Autorisations

Pour vous assurer que le compte de service dispose des autorisations nécessaires pour exécuter un fichier notebook sur Serverless pour Apache Spark, demandez à votre administrateur d'accorder au compte de service le rôle IAM Éditeur Dataproc (roles/dataproc.editor) sur votre projet.

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour exécuter un fichier notebook sur Serverless pour Apache Spark. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour exécuter un fichier notebook sur Serverless pour Apache Spark :

  • dataproc.agents.create
  • dataproc.agents.delete
  • dataproc.agents.get
  • dataproc.agents.update
  • dataproc.session.create
  • dataproc.sessions.get
  • dataproc.sessions.list
  • dataproc.sessions.terminate
  • dataproc.sessions.delete
  • dataproc.tasks.lease
  • dataproc.tasks.listInvalidatedLeases
  • dataproc.tasks.reportStatus

Votre administrateur peut également attribuer au compte de service ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Notebooks, Vertex AI, and Dataproc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Notebooks, Vertex AI, and Dataproc APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  8. Si ce n'est pas déjà fait, configurez un réseau VPC répondant aux exigences répertoriées dans la section Configuration du réseauGoogle Cloud Serverless pour Apache Spark.
  9. Ouvrir JupyterLab

    1. Dans la console Google Cloud , accédez à la page Notebooks gérés.

      Accéder à la page "Notebooks gérés"

    2. À côté du nom de votre instance de notebooks gérés, cliquez sur Ouvrir JupyterLab.

    Démarrer une session Serverless pour Apache Spark

    Pour démarrer une session Serverless pour Apache Spark, procédez comme suit :

    1. Dans l'interface JupyterLab de votre instance de notebooks gérée, sélectionnez l'onglet Launcher (Lanceur d'applications), puis Serverless Spark (Spark sans serveur). Si l'onglet Launcher (Lanceur d'applications) n'est pas ouvert, sélectionnez File > New Launch (Fichier > Nouveau lanceur) pour l'ouvrir.

      La boîte de dialogue Créer une session Spark sans serveur s'affiche.

    2. Dans le champ Nom de la session, saisissez un nom pour votre session.

    3. Dans la section Execution configuration (Configuration de l'exécution), saisissez le compte de service que vous souhaitez utiliser. Si vous ne saisissez pas de compte de service, votre session utilisera le compte de service Compute Engine par défaut.

    4. Dans la section Configuration du réseau, sélectionnez le Réseau et le Sous-réseau d'un réseau répondant aux exigences répertoriées dans la section Configuration du réseauGoogle Cloud Serverless pour Apache Spark.

    5. Cliquez sur Créer.

      Un nouveau fichier notebook s'ouvre. La session Serverless pour Apache Spark que vous avez créée est le noyau qui exécute le code de votre fichier notebook.

    Exécuter votre code sur Serverless pour Apache Spark et d'autres kernels

    1. Ajoutez du code à votre nouveau fichier notebook, puis exécutez le code.

    2. Pour exécuter du code sur un autre noyau, modifiez le noyau.

    3. Lorsque vous souhaitez exécuter à nouveau le code sur votre session Serverless pour Apache Spark, redéfinissez le noyau sur le noyau Serverless pour Apache Spark.

    Mettre fin à votre session Serverless pour Apache Spark

    Vous pouvez arrêter une session Serverless pour Apache Spark dans l'interface JupyterLab ou dans la console Google Cloud . Le code du fichier notebook est conservé.

    JupyterLab

    1. Dans JupyterLab, fermez le fichier notebook créé lors de la création de votre session Serverless pour Apache Spark.

    2. Dans la boîte de dialogue qui s'affiche, cliquez sur Arrêter la session.

    Console Google Cloud

    1. Dans la console Google Cloud , accédez à la page Sessions Dataproc.

      Accéder aux sessions Dataproc

    2. Sélectionnez la session que vous souhaitez arrêter, puis cliquez sur Arrêter.

    Supprimer votre session Serverless pour Apache Spark

    Vous pouvez supprimer une session Serverless pour Apache Spark à l'aide de la console Google Cloud . Le code du fichier notebook est conservé.

    1. Dans la console Google Cloud , accédez à la page Sessions Dataproc.

      Accéder aux sessions Dataproc

    2. Sélectionnez la session que vous souhaitez supprimer, puis cliquez sur Supprimer.

    Étapes suivantes