Utilisez le plug-in Dataproc JupyterLab pour les sessions de notebook interactives et par lot sans serveur

Limites et considérations relatives à Dataproc sans serveur

  • Les jobs Spark sont exécutés avec l'identité du compte de service, et non avec celle de l'utilisateur ayant fait la demande.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. 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 gratuits 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.

    Go to project selector

  3. Activez l'API Dataproc

    Activer l'API

  4. Installez Google Cloud CLI.
  5. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Activez l'API Dataproc

    Activer l'API

  8. Installez Google Cloud CLI.
  9. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init

Installer le plug-in Dataproc JupyterLab

Vous pouvez installer et utiliser le plug-in Dataproc JupyterLab sur une machine ou une VM ayant accès à aux services Google, tels que votre ordinateur local ou Instance de VM Compute Engine.

Pour installer le plug-in, procédez comme suit:

  1. Assurez-vous que Python 3.8+ est installé sur votre ordinateur. Vous pouvez télécharger et installez Python python.org/downloads.

    1. Vérifiez l'installation de Python 3.8+.

      python3 --version
      
  2. Installez JupyterLab 3.6.3+ sur votre ordinateur.

    pip3 install --upgrade jupyterlab
    
    1. Vérifiez l'installation de JupyterLab 3.6.3+.

      pip3 show jupyterlab
      
  3. Installez le plug-in Dataproc JupyterLab.

    pip3 install dataproc-jupyter-plugin
    
    1. Si votre version de JupyterLab est antérieure à 4.0.0, activez le plug-in .

      jupyter server extension enable dataproc_jupyter_plugin
      
  4. Démarrez JupyterLab.

    jupyter lab
    
    1. La page du Lanceur d'applications JupyterLab s'ouvre dans votre navigateur. Il contient dans une section Jobs et sessions Dataproc. Il peut également contenir 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 Jupyter facultatif en cours d'exécution dans votre projet.

      <ph type="x-smartling-placeholder">
      </ph>
    2. 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 Avant de commencer Vous pouvez modifier le projet paramètres de région pour vos sessions depuis Paramètres JupyterLab > Paramètres Dataproc.

Créer un modèle d'exécution pour Dataproc sans serveur

Modèles d'environnement d'exécution Dataproc sans serveur (également appelés modèles session) contiennent des paramètres de configuration pour 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 la gcloud CLI.

JupyterLab

  1. Cliquez sur la fiche New runtime template dans Notebooks sans serveur Dataproc. sur la page du Lanceur d'applications JupyterLab.

  2. Remplissez le formulaire Runtime template (Modèle d'exécution).

  3. Spécifiez un nom à afficher et une description, puis saisissez ou confirmez les autres paramètres.

    Remarques :

    • Configuration réseau: le sous-réseau doit sur lesquels l'accès privé à Google est activé. et doit autoriser la communication de sous-réseau sur tous les ports (voir Configuration réseau Dataproc sans serveur pour Spark).

      Si le sous-réseau du réseau default pour la région que vous avez configurée lors de la configuration vous avez exécuté gcloud init dans Avant de commencer n'est pas activé pour l'accès privé à Google:

      • l'activer pour l'accès privé à Google ;
      • Sélectionnez 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 dans Paramètres > Paramètres Dataproc.
    • Metastore: pour utiliser un Service Dataproc Metastore dans vos sessions, sélectionnez l'ID du projet de métastore, la région et le service.

    • Durée d'inactivité maximale:durée maximale d'inactivité du notebook avant que la session ne soit résilié. Plage autorisée: de 10 minutes à 336 heures (14 jours).

    • Durée maximale de la session:durée maximale d'une session avant qu'elle ne soit résilié. Plage autorisée: de 10 minutes à 336 heures (14 jours).

    • PHS: vous pouvez sélectionner Serveur d'historique Spark persistant pour vous permettre d'accéder aux journaux de session pendant et après les sessions.

    • Propriétés Spark:cliquez sur Ajouter une propriété pour chaque propriété à définir. pour vos sessions Spark sans serveur. Voir Propriétés Spark pour obtenir la liste des propriétés Spark compatibles et non compatibles, y compris Propriétés d'exécution, de ressources et d'autoscaling Spark.

    • Étiquettes:cliquez sur Ajouter une étiquette pour chaque étiquette à définir. sur vos sessions Spark sans serveur.

  4. Affichez vos modèles d'exécution en sélectionnant Settings > Paramètres Dataproc .

    • Vous pouvez supprimer un modèle dans le menu Action correspondant.
  5. Cliquez sur Enregistrer.

  6. Ouvrez et actualisez la page du Lanceur d'applications de JupyterLab pour afficher le modèle de notebook enregistré sur la page du lanceur JupyterLab.

gcloud

  1. Créez un fichier YAML avec la configuration de votre modèle d'exécution.

    Fichier YAML simple

    environmentConfig:
      executionConfig:
        networkUri: default
    jupyterSession:
      kernel: PYTHON
      displayName: Team A
    labels:
      purpose: testing
    description: Team A Development Environment
    

    Fichier YAML complexe

    environmentConfig:
      executionConfig:
        serviceAccount: sa1
        # Choose either networkUri or subnetworkUri
        networkUri: default
        subnetworkUri: subnet
        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: "1.1"
      containerImage: gcr.io/my-project-id/my-image:1.0.1
      properties:
        "p1": "v1"
    description: Team A Development Environment
    

    Si le sous-réseau du réseau default pour la région que vous avez configurée lors de la configuration vous avez exécuté gcloud init dans Avant de commencer n'est pas activé pour l'accès privé à Google:

    • l'activer pour l'accès privé à Google ;
    • Sélectionnez 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 dans Paramètres > Paramètres Dataproc.
  2. Créez un modèle de session (environnement d'exécution) à partir de votre fichier YAML en exécutant la commande suivante : gcloud beta dataproc session-templates import en local ou dans Cloud Shell:

    gcloud beta dataproc session-templates import TEMPLATE_ID \
        --source=YAML_FILE \
        --project=PROJECT_ID \
        --location=REGION
    

Lancer et gérer les notebooks

Après avoir installé le plug-in Dataproc JupyterLab, Vous pouvez cliquer sur les fiches de modèle sur la page du Lanceur d'applications de JupyterLab pour:

Lancer un notebook Jupyter sur Dataproc sans serveur

La section Notebooks sans serveur Dataproc sur la page du lanceur d'applications JupyterLab affiche le modèle de notebook des fiches mappées aux modèles d'exécution sans serveur Dataproc (consultez Créez un modèle d'exécution pour Dataproc sans serveur).

  1. 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 notebook le noyau est prêt à être utilisé, son état change de Unknown à Idle.

  2. Écrire et tester le code du notebook

    1. Copiez et collez le code PySpark Pi estimation suivant dans la cellule du notebook PySpark, puis appuyez sur Maj+Retour 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:

  3. Après avoir créé et utilisé un notebook, vous pouvez arrêter la session de notebook en cliquant sur Shut Down Kernel (Arrêter le noyau) dans l'onglet Kernel (Noyau).

    • Si vous ne mettez pas fin à la session, Dataproc y met fin Lorsque le délai d'inactivité de la session expire. Vous pouvez configurer la session la durée d'inactivité configuration du modèle d'exécution. Le temps d'inactivité par défaut d'une session est d'une heure.

Lancer un notebook sur un cluster Dataproc sur Compute Engine

Si vous avez créé un cluster Dataproc sur Compute Engine Jupyter, la page du Lanceur d'applications de JupyterLab contient un Section Notebook du cluster Dataproc avec les cartes de noyau préinstallées.

Pour lancer un notebook Jupyter sur Dataproc sur Cluster Compute Engine:

  1. Cliquez sur une fiche dans la section Notebook du cluster Dataproc.

  2. Lorsque l'état du noyau passe de Unknown à Idle, vous pouvez commencez à écrire et à exécuter le code du notebook.

  3. Après avoir créé et utilisé un notebook, vous pouvez arrêter la session de notebook en cliquant sur Shut Down Kernel (Arrêter le noyau) dans l'onglet Kernel (Noyau).

Gérer les fichiers d'entrée et de sortie dans Cloud Storage

L'analyse de données exploratoires et la création de modèles de ML impliquent souvent des entrées et sorties basées sur des fichiers. Dataproc sans serveur accède à ces fichiers sur Cloud Storage.

  • Pour accéder au navigateur Cloud Storage, cliquez sur le navigateur Cloud Storage. dans la barre latérale de la page Lanceur d'applications 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 enregistrer les modifications apportées aux fichiers, celles-ci 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.

Développer le code du notebook Spark

Après avoir installé le plug-in Dataproc JupyterLab, vous pouvez lancer les notebooks Jupyter à partir de la page du Lanceur d'applications JupyterLab pour développer le code d'application.

Développement de code PySpark et Python

Dataproc sans serveur et Dataproc sur Compute Engine sont compatibles avec les noyaux PySpark. Dataproc sur Compute Engine est également compatible avec les noyaux Python.

Développement de code SQL

Cliquez sur la carte du noyau PySpark dans Notebooks Dataproc sans serveur ou notebook Cluster Dataproc de la page du Lanceur d'applications JupyterLab pour ouvrir un notebook PySpark afin d'écrire et d'exécuter du code SQL.

La magie de Spark SQL:puisque le noyau PySpark lance Notebooks Dataproc sans serveur est préchargé avec la magie Spark SQL au lieu d'utiliser spark.sql('SQL STATEMENT').show() pour encapsuler votre instruction SQL, vous pouvez taper %%sparksql magic en haut d'une cellule, puis saisissez votre instruction SQL dans la cellule.

BigQuery SQL:le connecteur BigQuery Spark permet au code de votre notebook de charger des données. à partir de tables BigQuery, effectuer une analyse dans Spark, puis écrire les résultats à une table BigQuery.

L'environnement d'exécution Dataproc sans serveur 2.1 inclut les Connecteur BigQuery Spark. Si vous utilisez la version Dataproc Serverless 2.0 ou un environnement d'exécution antérieur pour lancer les notebooks sans serveur Dataproc, vous pouvez installer le connecteur BigQuery Spark en ajoutant la propriété Spark à 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

Clusters Dataproc sur Compute Engine créés avec une image versions 2.0, 2.1 et ultérieures, y compris Apache Toree, un noyau Scala pour la plate-forme de notebook Jupyter qui fournit un accès interactif à Spark.

  • Cliquez sur la fiche "Apache Toree" dans le Notebook Dataproc Cluster de la page du Lanceur d'applications JupyterLab pour ouvrir un notebook pour Scala développement du code.

Explorateur de métadonnées

Si une instance Dataproc Metastore (DPMS) est associée à un modèle d'exécution Dataproc sans serveur ou un cluster Dataproc sur Compute Engine, le schéma d'instance DPMS s'affiche dans l'explorateur de métadonnées JupyterLab lorsqu'un notebook est ouvert. DPMS est un service Hive Metastore (HMS) entièrement géré et à évolutivité horizontale Google Cloud.

Pour afficher les métadonnées HMS dans l'explorateur de métadonnées:

Pour ouvrir l'explorateur de métadonné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 de métadonné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é le plug-in Dataproc JupyterLab, vous pouvez utiliser JupyterLab pour:

  • Exécuter le code de votre notebook sur l'infrastructure sans serveur Dataproc

  • Envoyez des jobs par lot à l'infrastructure sans serveur Dataproc ou à votre Dataproc sur un cluster Compute Engine.

Exécuter le code du notebook sur Dataproc sans serveur

  • Cliquez sur l'icône Exécuter ou appuyez sur les touches Maj-Retour pour exécuter le code. dans une cellule de notebook.

  • Utilisez le menu Exécuter pour exécuter du code dans une ou plusieurs cellules du notebook.

Envoyer un job par lot vers Dataproc sans serveur

  • Cliquez sur la carte Sans serveur dans la section Jobs et sessions Dataproc. sur la page du Lanceur d'applications de JupyterLab.

  • Cliquez sur l'onglet Lot, puis sur Créer un lot et renseignez les Champs Informations sur le lot.

  • Cliquez sur Envoyer pour envoyer la tâche.

Envoyer un job par lot à un cluster Dataproc sur Compute Engine

  • Cliquez sur la carte Clusters dans la section Tâches et sessions Dataproc. sur la page du lanceur JupyterLab.

  • Cliquez sur l'onglet Jobs (Tâches), puis sur Submit Job (Envoyer un job).

  • Sélectionnez un cluster, puis remplissez les champs Tâche.

  • Cliquez sur Envoyer pour envoyer la tâche.

Afficher et gérer les ressources

Après avoir installé le plug-in Dataproc JupyterLab, vous pouvez afficher et gérer Dataproc sans serveur et Dataproc sur Compute Engine. dans la section Jobs et sessions Dataproc de la page Lanceur d'applications de JupyterLab.

Cliquez sur la section Jobs et sessions Dataproc pour afficher les sections Clusters et Cartes sans serveur

Pour afficher et gérer les sessions Dataproc sans serveur, procédez comme suit:

  1. Cliquez sur la carte Sans serveur.
  2. Cliquez sur l'onglet Sessions, puis sur un ID de session pour ouvrir la page Détails de la session. pour afficher les propriétés de session, afficher le journal 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.

Pour afficher et gérer des lots Dataproc sans serveur, procédez comme suit:

  1. Cliquez sur l'onglet Lots pour afficher la liste des lots Dataproc sans serveur dans le le projet et la région actuels. Cliquez sur l'ID d'un lot pour afficher les détails correspondants.

Pour afficher et gérer des clusters Dataproc sur Compute Engine, procédez comme suit:

  1. Cliquez sur la carte Clusters. L'onglet Clusters est sélectionné pour répertorier clusters Dataproc sur Compute Engine actifs le projet et la région actuels. Vous pouvez cliquer sur les icônes de la colonne Actions. démarrer, arrêter ou redémarrer un cluster. Cliquez sur le nom d'un cluster. pour afficher les détails du cluster. Vous pouvez cliquer sur les icônes de la colonne Actions. pour cloner, arrêter ou supprimer un job.

Pour afficher et gérer les jobs Dataproc sur Compute Engine, procédez comme suit:

  1. Cliquez sur la fiche Jobs pour afficher la liste des tâches dans projet en cours. Cliquer sur un ID de job pour afficher les détails du job.