Ce document explique comment installer et utiliser l'extension JupyterLab sur une machine ou une VM autogérée ayant accès aux services Google. Il explique également comment développer et déployer du code de notebook Spark sans serveur.
Installez l'extension en quelques minutes pour profiter des fonctionnalités suivantes:
- Lancer des notebooks Spark et BigQuery sans serveur pour développer rapidement du code
- Parcourir et prévisualiser des ensembles de données BigQuery dans JupyterLab
- Modifier des fichiers Cloud Storage dans JupyterLab
- Programmer un notebook sur Composer
Avant de commencer
- 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.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc API.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Dataproc API.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Téléchargez et installez la version 3.11 ou ultérieure de Python à partir de
python.org/downloads
.- Vérifiez l'installation de Python 3.11 ou version ultérieure.
python3 --version
- Vérifiez l'installation de Python 3.11 ou version ultérieure.
Virtualisez l'environnement Python.
pip3 install pipenv
- Créez un dossier d'installation.
mkdir jupyter
- Accédez au dossier d'installation.
cd jupyter
- Créez un environnement virtuel.
pipenv shell
- Créez un dossier d'installation.
Installez JupyterLab dans l'environnement virtuel.
pipenv install jupyterlab
Installez l'extension JupyterLab.
pipenv install bigquery-jupyter-plugin
jupyter lab
La page du lanceur d'applications de JupyterLab s'ouvre dans votre navigateur. Il contient une section Jobs et sessions Dataproc. Il peut également contenir des sections Notebooks Dataproc sans serveur et Notebooks de cluster Dataproc si vous avez accès à des notebooks Dataproc sans serveur ou à des clusters Dataproc avec le composant facultatif Jupyter exécuté dans votre projet.
Par défaut, votre session Dataproc sans serveur pour Spark interactive s'exécute dans le projet et la région que vous avez définis en exécutant
gcloud init
dans la section Avant de commencer. Vous pouvez modifier les paramètres de projet et de région de vos sessions sur la page Settings > Google Dataproc Settings (Paramètres > Paramètres Google Dataproc) de JupyterLab.Vous devez redémarrer l'extension pour que les modifications prennent effet.
Cliquez sur la fiche
New runtime template
dans la section Notebooks Dataproc sans serveur sur la page du lanceur d'applications de JupyterLab.Remplissez le formulaire Modèle d'environnement d'exécution.
Informations sur le modèle:
- Nom à afficher, ID d'exécution et Description: acceptez ou renseignez un nom à afficher, un ID d'exécution et une description pour le modèle.
Configuration d'exécution: sélectionnez Compte utilisateur pour exécuter des notebooks avec l'identité de l'utilisateur plutôt qu'avec l'identité du compte de service Dataproc.
- Compte de service: si vous ne spécifiez pas de compte de service, le compte de service Compute Engine par défaut est utilisé.
- Version d'exécution: confirmez ou sélectionnez la version d'exécution.
- Image de conteneur personnalisée: vous pouvez spécifier l'URI d'une image de conteneur personnalisée.
- Dépôt de packages Python: par défaut, les packages Python sont téléchargés et installés à partir du cache d'extraction PyPI lorsque les utilisateurs exécutent des commandes d'installation
pip
dans leurs notebooks. Vous pouvez spécifier le dépôt d'artefacts privé de votre organisation pour que les packages Python l'utilisent comme dépôt de packages Python par défaut.
Chiffrement: acceptez la valeur par défaut Google-owned and Google-managed encryption key ou sélectionnez Clé de chiffrement gérée par le client (CMEK). Si vous choisissez CMEK, sélectionnez ou fournissez les informations sur la clé.
Network Configuration (Configuration réseau) : sélectionnez un sous-réseau dans le projet ou partagé à partir d'un projet hôte (vous pouvez modifier le projet dans le menu Settings > Google Dataproc Settings (Paramètres > Paramètres Google Dataproc) de JupyterLab). Vous pouvez spécifier des tags réseau à appliquer au réseau spécifié. Notez que Dataproc sans serveur active l'accès privé à Google sur le sous-réseau spécifié. Pour connaître les exigences de connectivité réseau, consultez la section Configuration du réseau Dataproc sans serveur pour Spark.
Configuration de la session: vous pouvez remplir ces champs pour limiter la durée des sessions créées avec le modèle.
- Durée d'inactivité maximale:durée d'inactivité maximale avant l'arrêt de la session. Plage autorisée: 10 minutes à 336 heures (14 jours).
- Durée de session maximale:durée maximale d'une session avant son arrêt. Plage autorisée: 10 minutes à 336 heures (14 jours).
Metastore: pour utiliser un service Dataproc Metastore avec vos sessions, sélectionnez l'ID et le service du projet de métastore.
Serveur d'historique persistant: vous pouvez sélectionner un serveur d'historique Spark persistant disponible pour accéder aux journaux de session pendant et après les sessions.
Propriétés Spark:vous pouvez sélectionner, puis ajouter des propriétés Resource Allocation (Allocation de ressources), Autoscaling (Autoscaling) ou GPU (GPU). Cliquez sur Ajouter une propriété pour ajouter d'autres propriétés Spark. Pour en savoir plus, consultez la section Propriétés Spark.
Libellés:cliquez sur Ajouter un libellé pour chaque libellé à définir sur les sessions créées avec le modèle.
Cliquez sur Enregistrer pour créer le modèle.
Pour afficher ou supprimer un modèle d'environnement d'exécution
- Cliquez sur Settings > Google Dataproc Settings (Paramètres > Paramètres Google Dataproc).
- La section "Modèles d'exécution Dataproc sans serveur" affiche la liste des modèles d'exécution.
- Cliquez sur le nom d'un modèle pour en afficher les détails.
- Vous pouvez supprimer un modèle dans le menu Action correspondant.
Ouvrez et actualisez la page du lanceur d'applications de JupyterLab pour afficher la fiche du modèle de notebook enregistré sur la page du lanceur d'applications de JupyterLab.
Créez un fichier YAML avec la configuration de votre modèle d'exécution.
YAML simple
environmentConfig: executionConfig: networkUri: default jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing description: Team A Development Environment
YAML complexe
description: Example session template environmentConfig: executionConfig: serviceAccount: sa1 # Choose either networkUri or subnetworkUri networkUri: subnetworkUri: default networkTags: - tag1 kmsKey: key1 idleTtl: 3600s ttl: 14400s stagingBucket: staging-bucket peripheralsConfig: metastoreService: projects/my-project-id/locations/us-central1/services/my-metastore-id sparkHistoryServerConfig: dataprocCluster: projects/my-project-id/regions/us-central1/clusters/my-cluster-id jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing runtimeConfig: version: "2.3" containerImage: gcr.io/my-project-id/my-image:1.0.1 properties: "p1": "v1" description: Team A Development Environment
Créez un modèle de session (d'exécution) à partir de votre fichier YAML en exécutant la commande gcloud beta dataproc session-templates import suivante en local ou dans Cloud Shell:
gcloud beta dataproc session-templates import TEMPLATE_ID \ --source=YAML_FILE \ --project=PROJECT_ID \ --location=REGION
- Consultez gcloud beta dataproc session-templates pour obtenir les commandes permettant de décrire, d'afficher, d'exporter et de supprimer des modèles de session.
Cliquez sur une fiche pour créer une session Dataproc sans serveur et lancer un notebook. Lorsque la création de la session est terminée et que le kernel associé au notebook est prêt à être utilisé, l'état du kernel passe de
Starting
àIdle (Ready)
.Écrire et tester du code dans un notebook
Copiez et collez le code
Pi estimation
PySpark suivant dans la cellule du notebook PySpark, puis appuyez sur Maj+Entrée pour exécuter le code.import random def inside(p): x, y = random.random(), random.random() return x*x + y*y < 1 count = sc.parallelize(range(0, 10000)) .filter(inside).count() print("Pi is roughly %f" % (4.0 * count / 10000))
Résultat du notebook:
Après avoir créé et utilisé un notebook, vous pouvez mettre fin à la session associée en cliquant sur Shut Down Kernel (Arrêter le kernel) dans l'onglet Kernel (Noyau).
- Pour réutiliser la session, créez un notebook en sélectionnant Notebook (Notebook) dans le menu File>>New (Fichier >>Nouveau). Une fois le nouveau notebook créé, sélectionnez la session existante dans la boîte de dialogue de sélection du noyau. Le nouveau notebook réutilisera la session et conservera le contexte de session du notebook précédent.
Si vous ne mettez pas fin à la session, Dataproc s'en chargera une fois que le minuteur d'inactivité de la session sera arrivé à zéro. Vous pouvez configurer le délai d'inactivité d'une session dans la configuration du modèle d'exécution. Par défaut, ce délai est d'une heure.
Cliquez sur une fiche dans la section Notebook du cluster Dataproc.
Lorsque l'état du kernel passe de
Starting
àIdle (Ready)
, vous pouvez commencer à écrire et à exécuter le code du notebook.Après avoir créé et utilisé un notebook, vous pouvez mettre fin à la session associée en cliquant sur Shut Down Kernel (Arrêter le kernel) dans l'onglet Kernel (Noyau).
Pour accéder au navigateur Cloud Storage, cliquez sur l'icône du navigateur Cloud Storage dans la barre latérale de la page Lanceur de JupyterLab, puis double-cliquez sur un dossier pour afficher son contenu.
Vous pouvez cliquer sur les types de fichiers compatibles avec Jupyter pour les ouvrir et les modifier. Lorsque vous enregistrez les modifications apportées aux fichiers, elles sont écrites dans Cloud Storage.
Pour créer un dossier Cloud Storage, cliquez sur l'icône de nouveau dossier, puis saisissez le nom du dossier.
Pour importer des fichiers dans un bucket ou un dossier Cloud Storage, cliquez sur l'icône d'importation, puis sélectionnez les fichiers à importer.
Cliquez sur une fiche PySpark dans la section Notebooks sans serveur Dataproc ou Notebook de cluster Dataproc sur la page Lanceur d'applications de JupyterLab pour ouvrir un notebook PySpark.
Cliquez sur une fiche de kernel Python dans la section Notebook de cluster Dataproc de la page du lanceur JupyterLab pour ouvrir un notebook Python.
Cliquez sur la fiche Apache Toree dans la section Notebook de cluster Dataproc sur la page du lanceur d'applications JupyterLab pour ouvrir un notebook de développement de code Scala.
Figure 1 Fiche du noyau Apache Toree sur la page du lanceur d'applications JupyterLab. - Développez et exécutez du code Spark dans des notebooks Dataproc sans serveur.
- Créez et gérez des modèles d'exécution (sessions) Dataproc sans serveur, des sessions interactives et des charges de travail par lot.
- Développez et exécutez des notebooks BigQuery.
- Parcourir, inspecter et prévisualiser des ensembles de données BigQuery
- Téléchargez et installez VS Code.
- Ouvrez VS Code, puis dans la barre d'activité, cliquez sur Extensions.
Dans la barre de recherche, recherchez l'extension Jupyter, puis cliquez sur Installer. L'extension Jupyter de Microsoft est une dépendance obligatoire.
- Ouvrez VS Code, puis dans la barre d'activité, cliquez sur Extensions.
Dans la barre de recherche, recherchez l'extension Google Cloud Code, puis cliquez sur Installer.
Si vous y êtes invité, redémarrez VS Code.
- Ouvrez VS Code, puis dans la barre des tâches, cliquez sur Google Cloud Code.
- Ouvrez la section Dataproc.
- Cliquez sur Se connecter à Google Cloud. Vous êtes redirigé vers la page de connexion avec vos identifiants.
- Utilisez la barre des tâches de l'application de niveau supérieur pour accéder à Code > Paramètres > Paramètres > Extensions.
- Recherchez Google Cloud Code, puis cliquez sur l'icône Gérer pour ouvrir le menu.
- Sélectionnez Paramètres.
- Dans les champs Project (Projet) et Dataproc Region (Région Dataproc), saisissez le nom du Google Cloud projet et la région à utiliser pour développer des notebooks et gérer les ressources Dataproc sans serveur.
- Ouvrez VS Code, puis dans la barre des tâches, cliquez sur Google Cloud Code.
- Ouvrez la section Notebooks, puis cliquez sur Nouveau notebook Spark sans serveur.
- Sélectionnez ou créez un modèle d'exécution (session) à utiliser pour la session de notebook.
Un nouveau fichier
.ipynb
contenant un exemple de code est créé et ouvert dans l'éditeur.Vous pouvez désormais écrire et exécuter du code dans votre notebook Dataproc sans serveur.
- Ouvrez VS Code, puis dans la barre des tâches, cliquez sur Google Cloud Code.
Ouvrez la section Dataproc, puis cliquez sur les noms de ressources suivants:
- Clusters: créez et gérez des clusters et des jobs.
- Sans serveur: créez et gérez des charges de travail par lot et des sessions interactives.
- Modèles d'exécution Spark: créez et gérez des modèles de session.
Exécuter le code de votre notebook sur l'infrastructure Dataproc sans serveur
Planifier l'exécution d'un notebook sur Cloud Composer
Envoyez des tâches par lot à l'infrastructure Dataproc sans serveur ou à votre cluster Dataproc sur Compute Engine.
Cliquez sur le bouton Job Scheduler (Planificateur de tâches) en haut à droite du notebook.
Remplissez le formulaire Créer une tâche planifiée en fournissant les informations suivantes:
- Nom unique de la tâche d'exécution du notebook
- Environnement Cloud Composer à utiliser pour déployer le notebook
- Paramètres d'entrée si le notebook est paramétré
- Le cluster Dataproc ou le modèle d'exécution sans serveur à utiliser pour exécuter le notebook
- Si un cluster est sélectionné, indiquez si vous souhaitez l'arrêter une fois l'exécution du notebook terminée sur le cluster.
- Nombre de nouvelles tentatives et délai de nouvelle tentative en minutes si l'exécution du notebook échoue à la première tentative
- Notifications d'exécution à envoyer et liste des destinataires. Les notifications sont envoyées à l'aide d'une configuration SMTP Airflow.
- Calendrier d'exécution du notebook
Cliquez sur Créer.
Une fois le notebook planifié, son nom apparaît dans la liste des tâches planifiées dans l'environnement Cloud Composer.
Cliquez sur la fiche Sans serveur dans la section Jobs et sessions Dataproc de la page Lanceur d'applications de JupyterLab.
Cliquez sur l'onglet Batch (Lot), puis sur Create Batch (Créer un lot) et renseignez les champs Batch Info (Informations sur le lot).
Cliquez sur Envoyer pour envoyer la tâche.
Cliquez sur la fiche Clusters dans la section Tâches et sessions Dataproc de la page Lanceur de JupyterLab.
Cliquez sur l'onglet Jobs (Tâches), puis sur Submit Job (Envoyer une tâche).
Sélectionnez un cluster, puis remplissez les champs Job (Tâche).
Cliquez sur Envoyer pour envoyer la tâche.
- Cliquez sur la fiche Serverless (Sans serveur).
- Cliquez sur l'onglet Sessions, puis sur un ID de session pour ouvrir la page Détails de la session. Vous pouvez y afficher les propriétés de la session, les journaux Google Cloud dans l'explorateur de journaux et mettre fin à une session. Remarque: Une session Dataproc sans serveur unique est créée pour lancer chaque notebook Dataproc sans serveur.
- Cliquez sur l'onglet Lots pour afficher la liste des lots Dataproc sans serveur dans le projet et la région actuels. Cliquez sur un ID de lot pour afficher ses détails.
- Cliquez sur la fiche Clusters. L'onglet Clusters est sélectionné pour afficher les clusters Dataproc actifs sur Compute Engine dans le projet et la région actuels. Vous pouvez cliquer sur les icônes de la colonne Actions pour démarrer, arrêter ou redémarrer un cluster. Cliquez sur le nom d'un cluster pour afficher ses détails. Vous pouvez cliquer sur les icônes de la colonne Actions pour cloner, arrêter ou supprimer une tâche.
- Cliquez sur la fiche Jobs (Tâches) pour afficher la liste des tâches du projet en cours. Cliquez sur l'ID d'une tâche pour afficher ses détails.
Installer l'extension JupyterLab
.Vous pouvez installer et utiliser l'extension JupyterLab sur une machine ou une VM ayant accès aux services Google, comme votre machine locale ou une instance de VM Compute Engine.
Pour installer l'extension, procédez comme suit:
Créer un modèle d'exécution Dataproc sans serveur
Les modèles d'exécution Dataproc sans serveur (également appelés modèles de session) contiennent des paramètres de configuration pour l'exécution du code Spark dans une session. Vous pouvez créer et gérer des modèles d'exécution à l'aide de Jupyterlab ou de la gcloud CLI.
JupyterLab
gcloud
Lancer et gérer des notebooks
Après avoir installé l'extension Dataproc JupyterLab, vous pouvez cliquer sur les fiches de modèle sur la page du lanceur d'applications JupyterLab pour:
Lancer un notebook Jupyter sur Dataproc sans serveur
La section Notebooks Dataproc sans serveur de la page du lanceur d'applications JupyterLab affiche des fiches de modèle de notebook qui correspondent à des modèles d'exécution Dataproc sans serveur (voir Créer un modèle d'exécution Dataproc sans serveur).

Lancer un notebook sur un cluster Dataproc sur Compute Engine
Si vous avez créé un cluster Jupyter Dataproc sur Compute Engine, la page du lanceur d'applications de JupyterLab contient une section Notebook de cluster Dataproc avec des fiches de kernel préinstallées.

Pour lancer un notebook Jupyter sur votre cluster Dataproc sur Compute Engine:
Gérer les fichiers d'entrée et de sortie dans Cloud Storage
L'analyse des données exploratoires et la création de modèles de ML impliquent souvent des entrées et des sorties basées sur des fichiers. Dataproc sans serveur accède à ces fichiers sur Cloud Storage.
Développer du code de notebook Spark
Après avoir installé l'extension JupyterLab Dataproc, vous pouvez lancer des notebooks Jupyter à partir de la page Lanceur de JupyterLab pour développer du code d'application.
Développement de code PySpark et Python
Dataproc sans serveur et Dataproc sur les clusters Compute Engine sont compatibles avec les noyaux PySpark. Dataproc sur Compute Engine est également compatible avec les noyaux Python.
Développement de code SQL
Pour ouvrir un notebook PySpark afin d'écrire et d'exécuter du code SQL, sur la page du lanceur JupyterLab, dans la section Notebooks Dataproc sans serveur ou Notebook de cluster Dataproc, cliquez sur la fiche du kernel PySpark.
Magie Spark SQL:comme le kernel PySpark qui lance les notebooks sans serveur Dataproc est préchargé avec la magie Spark SQL, au lieu d'utiliser spark.sql('SQL STATEMENT').show()
pour encapsuler votre instruction SQL, vous pouvez saisir %%sparksql magic
en haut d'une cellule, puis saisir votre instruction SQL dans la cellule.
BigQuery SQL:le connecteur BigQuery Spark permet à votre code de notebook de charger des données à partir de tables BigQuery, d'effectuer des analyses dans Spark, puis d'écrire les résultats dans une table BigQuery.

Dataproc sans serveur 2.2
et les versions ultérieures incluent le connecteur BigQuery Spark.
Si vous utilisez une version antérieure d'exécution pour lancer des notebooks Dataproc sans serveur, vous pouvez installer le connecteur Spark BigQuery en ajoutant la propriété Spark suivante à votre modèle d'exécution Dataproc sans serveur:
spark.jars: gs://spark-lib/bigquery/spark-bigquery-with-dependencies_2.12-0.25.2.jar
Développement de code Scala
Les clusters Dataproc sur Compute Engine créés avec les versions d'image 2.0
et ultérieures incluent Apache Toree, un kernel Scala pour la plate-forme Jupyter Notebook qui fournit un accès interactif à Spark.
Développer du code avec l'extension Visual Studio Code
Vous pouvez utiliser l' Google Cloud extension Visual Studio Code (VS Code) pour effectuer les opérations suivantes:
L'extension Visual Studio Code est gratuite, mais vous êtes facturé pour tous les servicesGoogle Cloud , y compris les ressources Dataproc, Dataproc Serverless et Cloud Storage que vous utilisez.
Utiliser VS Code avec BigQuery: vous pouvez également utiliser VS Code avec BigQuery pour effectuer les opérations suivantes:
Avant de commencer
Installer l'extension Google Cloud
L'icône Google Cloud Code est désormais visible dans la barre d'activité de VS Code.
Configurer l'extension
Développer des notebooks Dataproc sans serveur
Créer et gérer des ressources Dataproc sans serveur
Explorateur d'ensembles de données
Utilisez l'explorateur d'ensembles de données JupyterLab pour afficher les ensembles de données BigLake Metastore.
Pour ouvrir l'explorateur d'ensembles de données JupyterLab, cliquez sur son icône dans la barre latérale.

Vous pouvez rechercher une base de données, une table ou une colonne dans l'explorateur d'ensembles de données. Cliquez sur le nom d'une base de données, d'une table ou d'une colonne pour afficher les métadonnées associées.

Déployer votre code
Après avoir installé l'extension JupyterLab pour Dataproc, vous pouvez utiliser JupyterLab pour:
Planifier l'exécution d'un notebook sur Cloud Composer
Suivez les étapes ci-dessous pour planifier l'exécution de votre code de notebook sur Cloud Composer en tant que job par lot sur Dataproc sans serveur ou sur un cluster Dataproc sur Compute Engine.
Envoyer un job par lot à Dataproc sans serveur
Envoyer une job par lot à un cluster Dataproc sur Compute Engine
Afficher et gérer les ressources
Après avoir installé l'extension JupyterLab pour Dataproc, vous pouvez afficher et gérer Dataproc sans serveur et Dataproc sur Compute Engine depuis la section Jobs et sessions Dataproc de la page Lanceur d'applications JupyterLab.
Cliquez sur la section Jobs et sessions Dataproc pour afficher les fiches Clusters (Clusters) et Serverless (Sans serveur).
Pour afficher et gérer les sessions Dataproc sans serveur:
Pour afficher et gérer les lots Dataproc sans serveur:
Pour afficher et gérer Dataproc sur des clusters Compute Engine:
Pour afficher et gérer les tâches Dataproc sur Compute Engine: