Découvrez comment utiliser Dataproc sans serveur pour les sessions Spark Interactive afin d'écrire et d'exécuter du code dans des notebooks Jupyter.
Limites des versions preview
- Les tâches Spark sont exécutées avec l'identité du compte de service, et non avec l'identité de l'utilisateur demandeur.
- Les métriques de facturation ne sont pas consignées dans Stackdriver (Dataproc pour Spark Serverless Interactive est gratuit pendant la phase preview).
- Les GPU ne sont pas encore compatibles.
- Les sessions s'arrêtent au bout de 24 heures, quel que soit le paramètre de propriété
max session time
dans le modèle d'exécution. Cette limitation sera supprimée pour la version en disponibilité générale.
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.
-
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.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Créer une session interactive Dataproc pour Spark sans serveur
Vous allez ouvrir des notebooks Jupyter dans Dataproc sans serveur pour les sessions Spark Interactive. Dans la version preview interactive de Dataproc sans serveur, vous pouvez créer une session de deux manières:
Utilisez le plug-in Dataproc JupyterLab pour créer des modèles que les utilisateurs peuvent utiliser pour lancer des sessions en fonction des paramètres des modèles.
Utilisez Vertex AI Workbench pour créer une session gérée par Google.
Plug-in JupyterLab
Les sections suivantes expliquent comment créer une session Dataproc de gestionnaire d'utilisateurs sans serveur pour Spark Interactive à l'aide du plug-in Dataproc JupyterLab.
Configurer votre machine
Vous pouvez configurer et exécuter ce guide de démarrage rapide sur une machine ayant accès aux services Google, telle que votre machine locale ou une instance de VM Compute Engine.
Assurez-vous que
Python 3.8+
est installé sur votre ordinateur. Vous pouvez télécharger et installer Python à partir depython.or/downloads
.Vérifiez l'installation de Python 3.8 ou version ultérieure.
python3 --version
Installez [
JupyterLab 3.6.3+
] et sur votre ordinateur.pip3 install --upgrade jupyterlab
Vérifiez l'installation de JupyterLab 3.6.3 ou version ultérieure.
pip3 show jupyterlab
Installez le plug-in Dataproc JupyterLab.
pip3 install dataproc-jupyter-plugin
Si votre version de JupyterLab est antérieure à
4.0.0
, activez l'extension de plug-in.jupyter server extension enable dataproc_jupyter_plugin
-
jupyter lab
La page du lanceur d'applications Jupyter s'ouvre dans votre navigateur. Il contient une section Tâches et sessions Dataproc. Il peut également contenir les sections Notebooks Dataproc sans serveur et Notebooks de cluster Dataproc si vous avez accès aux notebooks sans serveur Dataproc ou aux clusters Dataproc avec le composant Jupyter facultatif qui s'exécute 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 lors de l'exécution de
gcloud init
dans la section Avant de commencer. Vous pouvez modifier les paramètres de projet et de région pour vos sessions à partir de la page Paramètres > Paramètres Dataproc de JupyterLab.
Créer un modèle d'exécution Dataproc sans serveur
Les modèles d'exécution sans serveur Dataproc (également appelés modèles session
) contiennent des paramètres de configuration permettant d'exécuter 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 gcloud CLI.
JupyterLab
Cliquez sur la fiche
New runtime template
dans la section Notebooks du cluster Dataproc sur la page du lanceur d'applications JupyterLab.Remplissez le formulaire Runtime template (Modèle d'exécution).
Indiquez un Nom à afficher et une Description, puis saisissez ou confirmez les autres paramètres.
Remarques :
Configuration réseau: l'accès privé à Google doit être activé pour le sous-réseau et doit autoriser la communication de sous-réseau sur tous les ports (consultez la section Configuration du réseau Dataproc sans serveur pour Spark). Si l'accès privé à Google n'est pas activé pour le sous-réseau du réseau
default
pour la région que vous avez configurée lors de l'exécution degcloud init
dans la section Avant de commencer, vous devez activer l'accès privé à Google ou sélectionner un autre réseau avec un sous-réseau régional sur lequel l'accès privé à Google est activé. Vous pouvez modifier la région utilisée par Dataproc sans serveur à partir de la page Paramètres > Paramètres Dataproc de JupyterLab.Metastore: vous pouvez utiliser les champs de cette section pour sélectionner un service Dataproc Metastore disponible à utiliser avec votre session.
Temps d'inactivité maximal:temps d'inactivité maximal du notebook avant l'arrêt automatique de la session. Plage autorisée: de 10 minutes à 336 heures (14 jours).
Durée maximale de la session:durée de vie maximale d'une session avant qu'elle ne soit arrêtée automatiquement. Plage autorisée: de 10 minutes à 336 heures (14 jours).
PHS: vous pouvez sélectionner un serveur d'historique Spark persistant disponible pour accéder aux journaux de session pendant et après la session.
Propriétés Spark:cliquez sur Ajouter une propriété pour chaque propriété à définir pour vos sessions Spark sans serveur. Pour en savoir plus sur les propriétés Spark compatibles et non compatibles, consultez la page Configuration réseau de Dataproc sans serveur pour Spark.
Libellés:cliquez sur Ajouter un libellé pour chaque libellé à définir sur vos sessions Spark sans serveur.
La page Paramètres Dataproc répertorie vos modèles d'exécution. Vous pouvez supprimer un modèle de la liste depuis le menu Action pour chaque modèle répertorié.
Cliquez sur Enregistrer.
Ouvrez et actualisez la page du lanceur d'applications pour afficher la fiche du modèle de notebook enregistré dans le lanceur de JupyterLab.
gcloud
Créez un fichier YAML avec la configuration de votre modèle d'exécution.
Exemple :
environmentConfig: executionConfig: networkUri: default jupyterSession: kernel: PYTHON displayName: Team A labels: purpose: testing description: Team A Development Environment
Si l'accès privé à Google n'est pas activé pour le sous-réseau du réseau
default
pour la région que vous avez configurée lors de l'exécution degcloud init
dans la section Avant de commencer, vous devez activer l'accès privé à Google ou sélectionner un autre réseau avec un sous-réseau régional sur lequel l'accès privé à Google est activé. Vous pouvez modifier la région utilisée par Dataproc sans serveur à partir de la page Paramètres > Paramètres Dataproc de JupyterLab.Exécutez la commande gcloud beta Dataproc session-models import suivante, en local ou dans Cloud Shell, pour créer un modèle de session (d'exécution) à partir d'un fichier YAML.
gcloud beta dataproc session-templates import TEMPLATE_ID \ --source=YAML_FILE \ --project=PROJECT_ID \ --location=REGION
- Pour découvrir les commandes permettant de décrire, répertorier, exporter et supprimer des modèles de session, consultez la page gcloud beta Dataproc session-models.
Ouvrir un notebook
La section Notebooks Dataproc sans serveur sur la page du lanceur d'applications JupyterLab affiche les fiches des modèles de notebook qui correspondent aux noyaux d'exécution spécifiés par vos modèles d'exécution sans serveur.
Cliquez sur une fiche de noyau d'exécution pour créer une session et ouvrir un notebook. Une fois la session créée et que le noyau est prêt à l'emploi, son état passe de
Unknown
àIdle
, et un notebook s'ouvre.Pour afficher l'état d'une session, cliquez sur la fiche Sans serveur dans la section Tâches et sessions Dataproc de la page du lanceur d'applications JupyterLab, puis cliquez sur l'onglet Sessions. L'état de la session passe de
Creating
àActive
lorsqu'elle est entièrement provisionnée et prête à exécuter votre code.Écrire et tester du code dans le notebook
Copiez et collez le code PySpark
Pi estimation
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 de notebook en cliquant sur Arrêter le noyau dans l'onglet Noyau.
- Si vous n'arrêtez pas la session, Dataproc y met fin lorsque le délai d'inactivité de la session expire. Vous pouvez configurer le temps d'inactivité de session dans la configuration du modèle d'exécution. La durée d'inactivité de session par défaut est d'une heure.
Vertex AI
Cette section vous explique comment utiliser Vertex AI Workbench pour créer une session gérée, puis comment ouvrir et utiliser un notebook PySpark dans la session.
- Accédez à la page Vertex AI Workbench dans la console Google Cloud. Cliquez sur Nouveau notebook pour ouvrir un nouveau notebook géré.
- Renseignez les champs de la page Créer un notebook géré :
- Nom du notebook:saisissez le nom de votre notebook.
- Région:sélectionnez une région dans la liste. Les notebooks gérés Vertex AI sont disponibles dans les régions répertoriées.
- Autorisation:sélectionnez
Single user only
. - Adresse e-mail de l'utilisateur:saisissez votre adresse e-mail.
- Cliquez sur Créer pour créer le notebook et revenez à la page Vertex AI Workbench.
- Votre notebook figure sur la page Vertex AI Workbench. Une fois ce lien activé, cliquez sur Ouvrir JupyterLab sur la ligne de votre notebook.
- Dans la boîte de dialogue Authentifier votre notebook géré qui s'affiche, cliquez sur S'authentifier pour autoriser Vertex AI Workbench à accéder à vos données et à authentifier votre notebook géré, puis sélectionnez votre compte et autorisez l'accès pour ouvrir JupyterLab.
- Dans l'onglet Launcher (Lanceur d'applications) de votre notebook, sélectionnez Spark sans serveur pour créer une session.
- Complétez la page Create Serverless Spark Session (Créer une session Spark sans serveur) :
- Nom de la session:saisissez un nom pour votre session. Chaque session est compatible avec un seul notebook Jupyter.
- Language (Langue) : sélectionnez PySpark.
- Configuration d'exécution:laissez l'élément de compte de service vide pour utiliser le compte de service Compute Engine par défaut.
- Configuration réseau :
- Cliquez sur Réseaux dans ce projet. Le sous-réseau VPC qui exécute une session doit répondre aux exigences indiquées dans la section Configuration du réseau Dataproc sans serveur pour Spark.
- Sélectionnez un réseau et un sous-réseau au sein de votre projet dans la liste. La liste affiche les sous-réseaux du réseau sélectionné pour lesquels l'accès privé à Google est activé.
- Cliquez sur Submit: (Envoyer) pour démarrer la session. Le journal d'activité affiche la progression de l'initialisation de la session. Vous pouvez également surveiller l'état de votre session depuis la page Sessions Dataproc dans la console Google Cloud.
- Une fois l'initialisation de la session terminée, un onglet de notebook Untitled.ipynb s'ouvre dans JupyterLab. Copiez et collez le code PySpark
Pi estimation
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))
- Fermez l'onglet du notebook Untitled.ipynb. Dataproc sans serveur tente de détecter et d'arrêter la session après la fermeture d'un notebook dans JupyterLab.