Dans ce document, vous utilisez les composants facturables suivants de Google Cloud:
- Dataproc
- Compute Engine
- Cloud Scheduler
Obtenez une estimation des coûts en fonction de votre utilisation prévue,
utilisez le simulateur de coût.
Avant de commencer
Configurer votre projet
- 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.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init
Créer un rôle personnalisé
- Ouvrez la page IAM et administration → Rôles
dans la Google Cloud console.
- Cliquez sur CRÉER UN RÔLE pour ouvrir la page Créer un rôle.
- Renseignez les champs "Titre", "Description", "ID" et "Étape de lancement". Suggestion : utilisez "Créer un modèle de workflow Dataproc" comme titre de rôle.
- Cliquez sur AJOUTER DES AUTORISATIONS.
- Dans le formulaire Ajouter des autorisations, cliquez sur Filtrer, puis sélectionnez "Autorisation". Complétez le filtre pour afficher "Permission: dataproc.workflowTemplates.instantiate".
- Cochez la case située à gauche de l'autorisation répertoriée, puis cliquez sur Ajouter.

- Sur la page "Créer un rôle", cliquez à nouveau sur "Ajouter des autorisations" pour répéter les
sous-étapes précédentes afin d'ajouter l'autorisation "iam.serviceAccounts.actAs"
au rôle personnalisé. La page Créer un rôle répertorie désormais deux autorisations.

- Cliquez sur CREATE (Créer) sur la page Custom Role (Rôle personnalisé).
Le rôle personnalisé est répertorié sur la page Roles (Rôles).

Créer un compte de service
Dans la Google Cloud console, accédez à la page Comptes de service.
Sélectionnez votre projet.
Cliquez sur Créer un compte de service.
Dans le champ Nom du compte de service, saisissez le nom
workflow-scheduler. La Google Cloud console remplit le champ ID du compte de service en fonction de ce nom.Facultatif : dans le champ Description du compte de service, saisissez une description du compte de service.
Cliquez sur Créer et continuer.
Cliquez sur le champ Sélectionner un rôle , puis choisissez le rôle personnalisé Créer un modèle de workflow Dataproc que vous avez créé à l'étape précédente.
Cliquez sur Continuer.
Dans le champ Rôle d'administrateur du compte de service, saisissez l'adresse e-mail de votre compte Google.
Cliquez sur OK pour terminer la création du compte de service.
Créer un modèle de workflow
Copiez et exécutez les commandes répertoriées ci-dessous dans une fenêtre de terminal local ou dans Cloud Shell pour créer et définir un modèle de workflow.
Notes :
- Les commandes spécifient la région "us-central1". Vous pouvez spécifier une autre région ou supprimer l'option
--regionsi vous avez déjà exécutégcloud config set compute/regionpour définir la propriété de région. - La séquence "-- " (tiret, tiret, espace) de la commande
add-jobtransmet l'argument1000à la tâche SparkPi qui spécifie le nombre d'échantillons à utiliser pour estimer la valeur de Pi.
- Créez le modèle de workflow.
gcloud dataproc workflow-templates create sparkpi \ --region=us-central1
- Ajoutez la tâche spark au modèle de workflow sparkpi. L'ID d'étape "compute" est requis et identifie la tâche SparkPi ajoutée.
gcloud dataproc workflow-templates add-job spark \ --workflow-template=sparkpi \ --step-id=compute \ --class=org.apache.spark.examples.SparkPi \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --region=us-central1 \ -- 1000
- Utilisez un
géré,
à nœud unique
cluster pour exécuter le workflow. Managed Service pour Apache Spark crée le
cluster, y exécute le workflow, puis le supprime une fois le workflow terminé.
gcloud dataproc workflow-templates set-managed-cluster sparkpi \ --cluster-name=sparkpi \ --single-node \ --region=us-central1
- Cliquez sur le nom
sparkpisur la page Workflows de Managed Service pour Apache Spark dans la Google Cloud console pour ouvrir la page Détails du modèle de workflow. Confirmez les attributs du modèle sparkpi attributes.
Créer une tâche Cloud Scheduler
Ouvrez la page Cloud Scheduler dans la Google Cloud console (vous devrez peut-être sélectionner votre projet pour ouvrir la page). Cliquez sur CRÉER UNE TÂCHE.
Saisissez ou sélectionnez les informations suivantes sur la tâche :
- Sélectionnez une région : "us-central" ou toute autre région dans laquelle vous avez créé votre modèle de workflow.
- Nom : "Sparkpi"
- Fréquence : sélectionnez "* * * * *" pour une exécution toutes les minutes, sélectionnez "0 9 * * 1" pour une exécution tous les lundis à 9 heures. Consultez la page Définir le calendrier de tâche pour les autres valeurs unix-cron. Remarque : Vous pourrez cliquer sur le bouton "EXÉCUTER MAINTENANT" des Tâches Cloud Scheduler dans la Google Cloud console pour exécuter et tester une tâche, quelle que soit la fréquence que vous définissez pour votre tâche.
- Fuseau horaire : sélectionnez votre timezone. Saisissez "United States" (États-Unis) pour répertorier les fuseaux horaires américains.
- Cible : "HTTP"
- URL : insérez l'URL suivante après avoir spécifié your-project-id. Si vous avez créé votre modèle de workflow dans une région autre que "us-central1", remplacez cet élément. Cette URL appelle
l'API
workflowTemplates.instantiatede Managed Service pour Apache Spark afin d'exécuter votre modèle de workflow sparkpi.https://dataproc.googleapis.com/v1/projects/your-project-id/regions/us-central1/workflowTemplates/sparkpi:instantiate?alt=json
- Méthode HTTP
- "POST"
- Corps : "{}"
- En-tête d'authentification :
- "Ajouter un jeton OAuth"
- Compte de service : insérez le paramètre service account address du compte de service que vous avez créé pour ce tutoriel.
Vous pouvez utiliser l'adresse de compte suivante après avoir inséré your-project-id :
workflow-scheduler@your-project-id.iam.gserviceaccount.com
- Champ d'application : vous pouvez ignorer ce champ.
- Cliquez sur CREATE (Créer).
Tester une tâche de workflow planifiée
Sur la ligne de la tâche
sparkpide la page Cloud Scheduler Tâches, cliquez sur "Exécuter".Attendez quelques minutes, puis ouvrez la page Workflows de Managed Service pour Apache Spark pour vérifier si le workflow sparkpi est terminé.

Une fois que le workflow a supprimé le cluster géré, les détails de la tâche persistent dans la Google Cloud console. Cliquez sur la tâche
compute...répertoriée sur la page Tâches de Managed Service pour Apache Spark pour afficher les détails de la tâche de workflow.
Effectuer un nettoyage
Une fois terminé, le workflow de ce tutoriel supprime son cluster géré. Le fait de conserver le workflow vous permet de le réexécuter sans frais. Vous pouvez supprimer les autres ressources créées dans ce tutoriel pour éviter des coûts récurrents.
Supprimer un projet
- Dans la Google Cloud console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.
Supprimer votre modèle de workflow
gcloud dataproc workflow-templates delete sparkpi \ --region=us-central1
Supprimer votre tâche Cloud Scheduler
Dans la console, ouvrez la page Cloud Scheduler Tâches
, cochez la case située à gauche de la fonction sparkpi
, puis cliquez sur SUPPRIMER. Google Cloud
Supprimer votre compte de service
Dans la console, ouvrez la page IAM et administration → Comptes de service
, cochez la case située à gauche du workflow-scheduler...
compte de service, puis cliquez sur SUPPRIMER. Google Cloud
Étape suivante
- Consultez la page Présentation des modèles de workflow Managed Service pour Apache Spark.
- Consultez la page Solutions de planification de workflow.