Créer une instance compatible avec Spark pour Managed Service pour Apache Spark

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

Présentation de l'extension JupyterLab pour Managed Service pour Apache Spark

Le plug-in JupyterLab pour Managed Service pour Apache Spark est préinstallé sur les instances Vertex AI Workbench à partir de la version M113.

L'extension JupyterLab pour Managed Service pour Apache Spark offre deux façons d'exécuter des jobs de notebook Apache Spark : les clusters Managed Service pour Apache Spark et Managed Service pour Apache Spark.

  • Les clusters Managed Service pour Apache Spark 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.
  • Managed Service 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 des données et l'analyse. Le choix entre les clusters Managed Service pour Apache Spark et Managed Service pour Apache Spark dépend de vos exigences spécifiques en termes de charge de travail, du niveau de contrôle souhaité et des modèles d'utilisation des ressources.

Voici les avantages qu'offre l'utilisation de Managed Service pour Apache Spark pour les charges de travail de science des données 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 : Managed Service pour Apache Spark s'adapte automatiquement à la charge de travail. Vous ne payez donc que pour les ressources que vous utilisez.
  • Hautes performances : Managed Service pour Apache Spark est optimisé pour offrir de bonnes performances et profite de l'infrastructure de Google Cloud's.
  • Intégration à d'autres Google Cloud technologies : Managed Service pour Apache Spark s'intègre à d'autres Google Cloud produits, tels que BigQuery et Knowledge Catalog.

Pour en savoir plus, consultez la documentation de Managed Service pour Apache Spark.

Avant de commencer

  1. Connectez-vous à votre Google Cloud compte. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  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 role (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, Managed Service for Apache Spark, 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 role (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, Managed Service for Apache Spark, 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

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 Managed Service pour Apache Spark ou sur un cluster Managed Service pour Apache Spark, 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 Managed Service pour Apache Spark ou sur un cluster Managed Service 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 un cluster Managed Service pour Apache Spark ou sur un cluster Managed Service pour Apache Spark :

  • 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 Managed Service pour Apache Spark activé

Pour créer une instance Vertex AI Workbench avec Managed Service pour Apache Spark activé, procédez comme suit :

  1. Dans la Google Cloud console, 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 Managed Service pour Apache Spark et les jobs et sessions Managed Service pour Apache Spark. 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 Managed Service pour Apache Spark s'affiche.

Utiliser l'extension avec Managed Service pour Apache Spark

Les modèles d'exécution Managed Service 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 Managed Service 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 Managed Service pour Apache Spark modèle d'exécution.

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 Managed Service pour Apache Spark sur Compute Engine

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

Quatre fiches s'affichent pour chaque cluster Managed Service pour Apache Spark 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 Managed Service pour Apache Spark.

  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 Managed Service pour Apache Spark démarré, vous pouvez commencer à écrire votre code, puis l'exécuter sur votre cluster.

Gérer Managed Service pour Apache Spark sur une instance à l'aide de gcloud CLI et de l'API

Cette section décrit comment gérer Managed Service pour Apache Spark sur une instance Vertex AI Workbench.

Modifier la région de votre cluster Managed Service pour Apache Spark

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 Spark pour Managed Service pour Apache Spark, votre notebook s'exécute sur un cluster Managed Service pour Apache Spark 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 Managed Service pour Apache Spark dans le même projet.

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

Tester l'accès

L'extension JupyterLab pour Managed Service pour Apache Spark est activée par défaut pour les instances Vertex AI Workbench. Pour tester l'accès à Managed Service pour Apache Spark, vous pouvez vérifier l'accès aux noyaux 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 Managed Service pour Apache Spark

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

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

Activer Managed Service pour Apache Spark

Vous pouvez activer Managed Service pour Apache Spark 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 Managed Service pour Apache Spark à l'aide de Terraform

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

Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez la page 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 Spark pour Managed Service pour Apache Spark, consultez Résoudre les problèmes liés à Vertex AI Workbench.

Étape suivante