Créer une instance compatible avec Dataproc Spark

Cette page explique comment créer une instance Vertex AI Workbench compatible avec Dataproc Spark. Cette page décrit également les avantages de l'extension JupyterLab pour Dataproc et explique comment l'utiliser avec Serverless pour Apache Spark et Dataproc sur Compute Engine.

Présentation de l'extension Dataproc JupyterLab

L'extension JupyterLab pour Dataproc est préinstallée sur les instances Vertex AI Workbench à partir de la version M113.

L'extension Dataproc JupyterLab propose deux méthodes pour exécuter des tâches de notebooks Apache Spark : les clusters Dataproc etGoogle Cloud Serverless pour Apache Spark.

  • Les clusters Dataproc incluent un ensemble complet de fonctionnalités permettant de contrôler l'infrastructure sur laquelle s'exécute Spark. Vous choisissez la taille et la configuration de votre cluster Spark, ce qui vous permet de personnaliser et de contrôler votre environnement. Cette approche est idéale pour les charges de travail complexes, les tâches de longue durée et la gestion précise des ressources.
  • Serverless pour Apache Spark élimine les problèmes d'infrastructure. Vous envoyez vos jobs Spark, et Google gère le provisionnement, la mise à l'échelle et l'optimisation des ressources en arrière-plan. Cette approche sans serveur constitue une option économique pour les charges de travail de data science et de ML.

Avec ces deux options, vous pouvez utiliser Spark pour le traitement et l'analyse des données. Le choix entre les clusters Dataproc et Serverless pour Apache Spark dépend de vos exigences spécifiques en termes de charge de travail, du niveau de contrôle requis et des modèles d'utilisation des ressources.

Voici les avantages qu'offre l'utilisation de Serverless pour Apache Spark pour les charges de travail de data science et de ML :

  • Aucune gestion de cluster : vous n'avez pas à vous soucier du provisionnement, de la configuration ni de la gestion des clusters Spark. Cela vous permet d'économiser du temps et des ressources.
  • Autoscaling : Serverless pour Apache Spark s'adapte automatiquement à la charge de travail. Vous ne payez donc que pour les ressources que vous utilisez.
  • Hautes performances : Serverless pour Apache Spark est optimisé pour les performances et tire parti de l'infrastructure de Google Cloud.
  • Intégration à d'autres technologies Google Cloud  : Serverless pour Apache Spark s'intègre à d'autres produits Google Cloud , tels que BigQuery et Dataplex Universal Catalog.

Pour en savoir plus, consultez la documentationGoogle Cloud Serverless pour Apache Spark.

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. Enable the Cloud Resource Manager, Dataproc, and Notebooks 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

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

  5. Enable the Cloud Resource Manager, Dataproc, and Notebooks 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

  6. Rôles requis

    Pour vous assurer que le compte de service dispose des autorisations nécessaires pour exécuter un fichier notebook sur un cluster Serverless pour Apache Spark ou un cluster Dataproc, demandez à votre administrateur d'accorder au compte de service les rôles IAM suivants :

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

    Ces rôles prédéfinis contiennent les autorisations requises pour exécuter un fichier notebook sur un cluster Serverless pour Apache Spark ou sur un cluster Dataproc. 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 un cluster Serverless pour Apache Spark ou sur un cluster Dataproc :

    • dataproc.agents.create
    • dataproc.agents.delete
    • dataproc.agents.get
    • dataproc.agents.update
    • dataproc.tasks.lease
    • dataproc.tasks.listInvalidatedLeases
    • dataproc.tasks.reportStatus
    • dataproc.clusters.use

    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.

    Créer une instance avec Dataproc activé

    Pour créer une instance Vertex AI Workbench avec Dataproc activé, procédez comme suit :

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

      Accéder à la page "Instances"

    2. Cliquez sur Créer.

    3. Dans la boîte de dialogue Nouvelle instance, cliquez sur Options avancées.

    4. Dans la boîte de dialogue Créer une instance, dans la section Détails, assurez-vous que l'option Activer les sessions interactives de Dataproc sans serveur est sélectionnée.

    5. Assurez-vous que le Type de Workbench est défini sur Instance.

    6. Dans la section Environnement, assurez-vous d'utiliser la dernière version ou une version numérotée M113 ou supérieure.

    7. Cliquez sur Créer.

      Vertex AI Workbench crée une instance et la démarre automatiquement. Lorsque l'instance est prête à l'emploi, Vertex AI Workbench active automatiquement un lien Ouvrir JupyterLab.

    Ouvrir JupyterLab

    En regard du nom de l'instance, cliquez sur Ouvrir JupyterLab.

    L'onglet Lanceur d'applications de JupyterLab s'ouvre dans votre navigateur. Par défaut, il contient des sections pour les notebooks Serverless pour Apache Spark et les jobs et sessions Dataproc. Si des clusters compatibles avec Jupyter sont disponibles dans le projet et la région sélectionnés, une section intitulée Notebooks de cluster Dataproc s'affiche.

    Utiliser l'extension avec Serverless pour Apache Spark

    Les modèles d'exécution Serverless pour Apache Spark situés dans la même région et le même projet que votre instance Vertex AI Workbench apparaissent dans la section Notebooks Serverless pour Apache Spark de l'onglet Lanceur d'applications de JupyterLab.

    Pour créer un modèle d'exécution, consultez Créer un modèle d'exécution Serverless pour Apache Spark.

    Pour ouvrir un nouveau notebook Spark sans serveur, cliquez sur un modèle d'exécution. Le démarrage du kernel Spark distant prend environ une minute. Une fois que le kernel a démarré, vous pouvez commencer à coder.

    Utiliser l'extension avec Dataproc sur Compute Engine

    Si vous avez créé un cluster Jupyter Dataproc sur Compute Engine, l'onglet Lanceur d'applications contient une section Notebooks de cluster Dataproc.

    Quatre fiches s'affichent pour chaque cluster Dataproc compatible Jupyter auquel vous avez accès dans cette région et ce projet.

    Pour modifier la région et le projet, procédez comme suit :

    1. Sélectionnez Paramètres > Paramètres Cloud Dataproc.

    2. Dans l'onglet Configuration, sous Informations sur le projet, modifiez l'ID du projet et la région, puis cliquez sur Enregistrer.

      Ces modifications ne seront appliquées qu'après le redémarrage de JupyterLab.

    3. Pour redémarrer JupyterLab, sélectionnez Fichier > Arrêter, puis cliquez sur Ouvrir JupyterLab sur la page Instances Vertex AI Workbench.

    Pour créer un notebook, cliquez sur une fiche. Une fois le kernel distant du cluster Dataproc démarré, vous pouvez commencer à écrire votre code, puis l'exécuter sur votre cluster.

    Gérer Dataproc sur une instance à l'aide de gcloud CLI et de l'API

    Cette section décrit comment gérer Dataproc sur une instance Vertex AI Workbench.

    Modifier la région de votre cluster Dataproc

    Les kernels par défaut de votre instance Vertex AI Workbench, tels que Python et TensorFlow, sont des kernels locaux qui s'exécutent dans la VM de l'instance. Sur une instance Vertex AI Workbench compatible avec Dataproc Spark, votre notebook s'exécute sur un cluster Dataproc via un kernel distant. Le kernel distant s'exécute sur un service externe à la VM de votre instance, ce qui vous permet d'accéder à n'importe quel cluster Dataproc dans le même projet.

    Par défaut, Vertex AI Workbench utilise des clusters Dataproc dans la même région que votre instance, mais vous pouvez modifier la région Dataproc tant que la passerelle des composants et le composant Jupyter facultatif sont activés sur le cluster Dataproc.

    Tester l'accès

    L'extension Dataproc JupyterLab est activée par défaut pour les instances Vertex AI Workbench. Pour tester l'accès à Dataproc, vous pouvez vérifier l'accès aux kernels distants de votre instance en envoyant la requête curl suivante au domaine kernels.googleusercontent.com :

    curl --verbose -H "Authorization: Bearer $(gcloud auth print-access-token)" https://PROJECT_ID-dot-REGION.kernels.googleusercontent.com/api/kernelspecs | jq .

    Si la commande curl échoue, vérifiez les points suivants :

    1. Vos entrées DNS sont correctement configurées.

    2. Un cluster est disponible dans le même projet (ou vous devrez en créer un s'il n'existe pas).

    3. La passerelle des composants et le composant Jupyter facultatif sont activés sur votre cluster.

    Désactiver Dataproc

    Les instances Vertex AI Workbench sont créées avec Dataproc activé par défaut. Vous pouvez créer une instance Vertex AI Workbench avec Dataproc désactivé en définissant la clé disable-mixer metadata sur true.

    gcloud workbench instances create INSTANCE_NAME --metadata=disable-mixer=true

    Activer Dataproc

    Vous pouvez activer Dataproc sur une instance Vertex AI Workbench arrêtée en mettant à jour la valeur de metadata.

    gcloud workbench instances update INSTANCE_NAME --metadata=disable-mixer=false

    Gérer Dataproc à l'aide de Terraform

    Sur Terraform, Dataproc pour les instances Vertex AI Workbench est géré à l'aide de la clé disable-mixer dans le champ metadata. Activez Dataproc en définissant la clé disable-mixer metadata sur false. Désactivez Dataproc en définissant la clé disable-mixer metadata sur true.

    Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.

    resource "google_workbench_instance" "default" {
      name     = "workbench-instance-example"
      location = "us-central1-a"
    
      gce_setup {
        machine_type = "n1-standard-1"
        vm_image {
          project = "cloud-notebooks-managed"
          family  = "workbench-instances"
        }
        metadata = {
          disable-mixer = "false"
        }
      }
    }

    Résoudre les problèmes

    Pour diagnostiquer et résoudre les problèmes liés à la création d'une instance compatible avec Dataproc Spark, consultez Résoudre les problèmes liés à Vertex AI Workbench.

    Étapes suivantes