GSP010
Aperçu
Dans cet atelier pratique, vous allez apprendre à utiliser Apache Spark dans
Cloud Managed Service for Spark pour distribuer une tâche de traitement
d'images utilisant beaucoup de ressources de calcul sur un cluster de
machines. Cet atelier fait partie d'une série portant sur le traitement de
données scientifiques.
Objectifs de l'atelier
-
Créer un cluster Cloud Managed Service for Spark géré avec
Apache Spark
pré-installé
-
Créer et exécuter des jobs utilisant des packages externes qui ne sont pas
encore installés sur votre cluster
- Arrêter votre cluster
Prérequis
Cet atelier est d'un niveau avancé. Une connaissance
préalable de Cloud Managed Service for Spark et d'Apache Spark est
recommandée, mais pas indispensable. Si vous souhaitez maîtriser ces services
rapidement, reportez-vous aux ateliers suivants :
Faites défiler la page vers le bas pour en savoir plus sur les services que
vous utiliserez lors de cet atelier.
Préparation
Avant de cliquer sur le bouton "Démarrer l'atelier"
Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.
Cet atelier pratique vous permet de suivre les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Des identifiants temporaires vous sont fournis pour vous permettre de vous connecter à Google Cloud le temps de l'atelier.
Pour réaliser cet atelier :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
Remarque : Ouvrez une fenêtre de navigateur en mode incognito (recommandé) ou de navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
- Vous disposez d'un temps limité. N'oubliez pas qu'une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Utilisez uniquement le compte de participant pour cet atelier. Si vous utilisez un autre compte Google Cloud, des frais peuvent être facturés à ce compte.
Démarrer l'atelier et se connecter à la console Google Cloud
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, une boîte de dialogue s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la droite, vous trouverez le panneau Préparation et accès à l'atelier, qui contient les éléments suivants :
- Le bouton Ouvrir la console Google Cloud
- Les identifiants temporaires (nom d'utilisateur et mot de passe) que vous devez utiliser pour cet atelier
- Des informations complémentaires vous permettant d'effectuer l'atelier, si nécessaire
Notez que le minuteur de l'atelier se trouve en haut de la page et indique le temps restant.
-
Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans une fenêtre en navigation privée si vous utilisez Chrome).
L'atelier lance les ressources, puis ouvre la page "Se connecter" dans un nouvel onglet.
Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.
Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
-
Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.
{{{user_0.username | "Username"}}}
Vous trouverez également le nom d'utilisateur dans le panneau Préparation et accès à l'atelier.
-
Cliquez sur Suivant.
-
Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.
{{{user_0.password | "Password"}}}
Vous trouverez également le mot de passe dans le panneau Préparation et accès à l'atelier.
-
Cliquez sur Suivant.
Important : Vous devez utiliser les identifiants fournis pour l'atelier. N'utilisez pas les identifiants de votre compte Google Cloud.
Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires pourront vous être facturés.
-
Accédez aux pages suivantes :
- Acceptez les conditions d'utilisation.
- N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
- Ne vous inscrivez pas à des essais sans frais.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Pour accéder aux produits et services Google Cloud, cliquez sur le menu de navigation ou saisissez le nom du service ou du produit dans le champ Recherche.
Introduction
Cloud Managed Service for Spark est un service géré Spark et Hadoop qui vous
permet de bénéficier d'outils de données Open Source pour le traitement par
lot, l'émission de requêtes, le streaming et le machine learning.
L'automatisation Cloud Managed Service for Spark vous permet de créer des
clusters rapidement, de les gérer facilement et de faire des économies en
désactivant ceux que vous n'utilisez plus. Vous consacrez moins de temps et
d'argent aux fonctions d'administration, ce qui vous permet de vous concentrer
sur les jobs et les données.
Vous pouvez utiliser Cloud Managed Service for Spark pour distribuer les jobs
utilisant beaucoup de ressources de calcul et répondant à ces critères :
-
Il s'agit d'un job à parallélisme embarrassant : vous
pouvez traiter plusieurs sous-ensembles de données sur différentes machines.
-
Vous disposez déjà d'un code Apache Spark effectuant les
calculs ou vous connaissez bien Apache Spark.
-
La répartition du travail entre vos sous-ensembles de données est
relativement uniforme.
Si différents sous-ensembles nécessitent des volumes d'opérations de
traitement différents (ou si vous ne connaissez pas encore Apache Spark),
Apache Beam sur Cloud Dataflow est une
alternative séduisante, car cet outil offre des pipelines de données avec
autoscaling.
Dans cet atelier, le job à exécuter marque les contours des visages sur
l'image à l'aide d'un ensemble de règles de traitement d'images spécifiées
dans OpenCV. L'API Vision est
une option plus performante, du fait que ce type de règles codées manuellement
ne fonctionne pas très bien. Cet atelier fournit un exemple d'exécution
distribuée d'un job utilisant beaucoup de ressources de calcul.
Tâche 1 : Créer un ordinateur de développement dans Compute Engine
Commencez par créer une machine virtuelle pour héberger vos services.
-
Dans la console Cloud, accédez à Compute Engine > Instances de VM > Créer une instance.
-
Accédez à la section Configuration de la machine.
Sélectionnez les valeurs suivantes :
-
Nom :
devhost
-
Série :
E2
-
Type de machine :
e2-standard-2 (2 vCPU)
-
Cliquez sur Sécurité.
-
Dans la section Niveaux d'accès, sélectionnez
Autoriser l'accès complet à l'ensemble des API Cloud.
-
Cliquez sur Créer. Cette machine fera office d'hôte
bastion pour le développement.
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche
exécutée. Si votre tâche a bien été exécutée, vous recevez une note
d'évaluation.
Créer un ordinateur de développement dans Compute Engine
-
Maintenant, connectez-vous en SSH à l'instance en cliquant sur le bouton
SSH de la console.
Tâche 2 : Installer le logiciel
À présent, configurez le logiciel pour qu'il exécute le job. À l'aide de
sbt, un outil de création Open Source, créez le fichier JAR pour
le job à envoyer sur le cluster Cloud Managed Service for Spark. Ce
fichier JAR contiendra le programme et les packages requis pour l'exécution du
job. Le job détectera les visages dans un ensemble de fichiers image stockées
dans un bucket Cloud Storage, et créera des fichiers image sur lesquels les
contours des visages seront marqués, dans ce même bucket ou un autre bucket
Cloud Storage.
-
Configurez Scala et sbt. Dans la fenêtre SSH, installez
Scala et sbt avec les commandes suivantes, afin de
pouvoir compiler le code :
sudo apt-get install -y dirmngr unzip
sudo apt-get update
sudo apt-get install -y apt-transport-https
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
echo "deb https://repo.scala-sbt.org/scalasbt/debian /" | sudo tee /etc/apt/sources.list.d/sbt_old.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
sudo apt-get update
sudo apt-get install -y bc scala sbt
Vous allez maintenant créer les fichiers du détecteur de caractéristiques. Le
code de cet atelier est adapté d'une solution disponible dans le dépôt
Cloud Managed Service for Spark sur
GitHub,
avec une légère variation. Vous téléchargerez le code, puis utiliserez la
commande cd pour accéder au répertoire de cet atelier. Vous
créerez ensuite un fichier Fat JAR du détecteur de caractéristiques, que vous
enverrez ensuite à Cloud Managed Service for Spark.
-
Exécutez les commandes suivantes dans la fenêtre SSH :
sudo apt-get update
gsutil cp gs://spls/gsp124/cloud-dataproc.zip .
unzip cloud-dataproc.zip
cd cloud-dataproc/codelabs/opencv-haarcascade
-
Démarrez la création. Cette commande crée un fichier Fat JAR du détecteur de
caractéristiques, que vous pourrez envoyer à Cloud Managed Service for
Spark :
sbt assembly
Remarque : Cette opération peut prendre cinq minutes ou plus. Veuillez patienter.
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche
exécutée. Si votre tâche a bien été exécutée, vous recevez une note
d'évaluation.
Installer le logiciel sur l'ordinateur de développement
Tâche 3 : Créer un bucket Cloud Storage et collecter des images
Maintenant que vous avez créé vos fichiers de détecteur de caractéristiques,
créez un bucket Cloud Storage et ajoutez-y des exemples d'images.
- Récupérez l'ID du projet et utilisez-le pour nommer votre bucket :
GCP_PROJECT=$(gcloud config get-value core/project)
-
Nommez votre bucket et définissez une variable de shell pour le nom de votre
bucket. Cette variable de shell vous servira dans les commandes pour faire
référence à votre bucket :
MYBUCKET="${USER//google}-image-${RANDOM}"
echo MYBUCKET=${MYBUCKET}
-
Utilisez le programme
gsutil fourni avec
gcloud dans Cloud SDK pour créer le bucket qui contiendra vos
exemples d'images :
gsutil mb gs://${MYBUCKET}
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche
exécutée. Si votre tâche a bien été exécutée, vous recevez une note
d'évaluation.
Créer un bucket Cloud Storage
- Importez des exemples d'images dans votre bucket :
curl https://www.publicdomainpictures.net/pictures/20000/velka/family-of-three-871290963799xUk.jpg | gsutil cp - gs://${MYBUCKET}/imgs/family-of-three.jpg
curl https://www.publicdomainpictures.net/pictures/10000/velka/african-woman-331287912508yqXc.jpg | gsutil cp - gs://${MYBUCKET}/imgs/african-woman.jpg
curl https://www.publicdomainpictures.net/pictures/10000/velka/296-1246658839vCW7.jpg | gsutil cp - gs://${MYBUCKET}/imgs/classroom.jpg
Vous venez d'importer les images suivantes dans votre bucket Cloud Storage :



Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche
exécutée. Si votre tâche a bien été exécutée, vous recevez une note
d'évaluation.
Importer des exemples d'images dans votre bucket
-
Exécutez la commande suivante pour afficher le contenu de votre bucket :
gsutil ls -R gs://${MYBUCKET}
Résultat :
gs://gcpstaging20392-student-image-23218/imgs/:
gs://gcpstaging20392-student-image-23218/imgs/african-woman.jpg
gs://gcpstaging20392-student-image-23218/imgs/classroom.jpg
gs://gcpstaging20392-student-image-23218/imgs/family-of-three.jpg
`
Tâche 4 : Créer un cluster Cloud Managed Service for Spark
-
Exécutez les commandes suivantes dans la fenêtre SSH pour
nommer votre cluster et définir la variable
MYCLUSTER. Vous
utiliserez la variable dans certaines commandes pour faire référence à votre
cluster :
MYCLUSTER="${USER/_/-}-qwiklab"
echo MYCLUSTER=${MYCLUSTER}
-
Définissez une région Compute Engine globale et créez un nouveau cluster :
gcloud config set dataproc/region {{{project_0.default_region | "REGION"}}}
gcloud dataproc clusters create ${MYCLUSTER} \
--bucket=${MYBUCKET} \
--worker-machine-type=e2-standard-2 \
--master-machine-type=e2-standard-2 \
--initialization-actions=gs://spls/gsp010/install-libgtk.sh \
--image-version=2.0 \
--worker-boot-disk-size=30GB \
--master-boot-disk-size=30GB
-
Si vous êtes invité à utiliser une zone au lieu d'une région, saisissez
Y.
L'opération peut prendre quelques minutes. Les paramètres de cluster par
défaut, qui incluent deux nœuds de calcul, devraient suffire pour cet atelier.
e2-standard-2 est spécifié en tant que type de machine à la fois
pour le nœud de calcul et l'instance principale afin de réduire le nombre
global de cœurs utilisés par le cluster.
Pour l'option initialization-actions, vous transmettez un script
qui installe la bibliothèque libgtk2.0-dev sur chacune des
machines de votre cluster. Cette bibliothèque sera nécessaire pour exécuter le
code.
Remarque : Si la création du cluster échoue, essayez de
supprimer le cluster (gcloud dataproc clusters delete ${MYCLUSTER}). Si vous y parvenez, exécutez une nouvelle fois la commande de création de
cluster.
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche
exécutée. Si votre tâche a bien été exécutée, vous recevez une note
d'évaluation.
Créer un cluster Cloud Managed Service for Spark
Remarque : Pour savoir comment utiliser les options de ligne de commande permettant de personnaliser les paramètres du cluster, reportez-vous à la partie de la documentation de référence de Cloud SDK qui traite de la commande gcloud dataproc clusters create.
Tâche 5 : Envoyer votre job à Cloud Managed Service for Spark
Dans cet atelier, le programme que vous exécutez est utilisé en tant que
détecteur de visages, donc le classificateur d'entrée haar doit
décrire un visage. Un classificateur haar est un fichier XML
servant à décrire les caractéristiques que le programme doit détecter. Vous
importerez le
fichier du classificateur haar
dans Cloud Storage, et inclurez son chemin d'accès Cloud Storage dans le
premier argument lorsque vous enverrez le job au cluster Cloud Managed Service
for Spark.
-
Exécutez la commande suivante dans la fenêtre SSH pour
charger le fichier de configuration de la détection de visages dans votre
bucket :
curl https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/haarcascade_frontalface_default.xml | gsutil cp - gs://${MYBUCKET}/haarcascade_frontalface_default.xml
-
Utilisez le jeu d'images que vous avez importé dans le répertoire
imgs du bucket Cloud Storage comme entrée pour votre détecteur
de caractéristiques. Vous devez inclure le chemin vers ce répertoire comme
deuxième argument de votre commande d'envoi de job.
- Envoyez votre job à Cloud Managed Service for Spark :
cd ~/cloud-dataproc/codelabs/opencv-haarcascade
gcloud dataproc jobs submit spark \
--cluster ${MYCLUSTER} \
--jar target/scala-2.12/feature_detector-assembly-1.0.jar -- \
gs://${MYBUCKET}/haarcascade_frontalface_default.xml \
gs://${MYBUCKET}/imgs/ \
gs://${MYBUCKET}/out/
Vous pouvez ajouter d'autres images à utiliser dans le bucket Cloud Storage
spécifié dans le deuxième argument.
-
Pour surveiller le job, dans la console, accédez au
menu de navigation >
Managed Service for Spark > Jobs.
Passez à l'étape suivante lorsque vous obtenez ce type de résultat :
Tester la tâche terminée
Cliquez sur Vérifier ma progression pour valider la tâche
exécutée. Si votre tâche a bien été exécutée, vous recevez une note
d'évaluation.
Envoyer votre job à Cloud Managed Service for Spark
-
Lorsque le job est terminé, accédez au
menu de navigation > Cloud Storage, et
recherchez le bucket que vous avez créé (son nom se compose de votre nom
d'utilisateur, suivi de student-image et d'un nombre
aléatoire), puis cliquez dessus.
-
Cliquez ensuite sur une image dans le répertoire
Out (Sortie).
-
Cliquez sur l'icône Télécharger pour télécharger l'image
sur votre ordinateur.
Quelle est la précision de la détection des visages ? L'API Vision
est plus performante, car ce type de règles codées manuellement ne fonctionne
pas très bien. Son fonctionnement est présenté ici.
-
(Facultatif) Dans votre bucket, accédez au dossier imgs, puis
cliquez sur les autres images que vous avez importées dans le bucket. Les
trois exemples d'images sont alors téléchargés. Enregistrez-les sur votre
ordinateur.
-
Cliquez sur ce lien pour accéder à la page de l'API Vision, faites défiler vers le bas jusqu'à la section
Essayer l'API, puis chargez les images que vous avez
importées depuis votre bucket. Le résultat de la détection d'images est
visible en quelques secondes. Les modèles de machine learning sous-jacents
ne cessent de progresser, donc vos résultats peuvent être différents de
ceux-ci :
-
(Facultatif) Si vous voulez essayer d'améliorer le détecteur de
caractéristiques, vous pouvez apporter des modifications au code
FeatureDetector, puis exécuter une nouvelle fois les commandes sbt assembly,
gcloud dataproc et jobs submit.
Tâche 6 : Tester vos connaissances
Voici quelques questions à choix multiples qui vous permettront de mieux
maîtriser les concepts abordés lors de cet atelier. Répondez-y du mieux que
vous le pouvez.
Félicitations !
Vous avez appris à lancer un cluster Cloud Managed Service for Spark et à
exécuter des jobs.
Formations et certifications Google Cloud
Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.
Dernière modification du manuel : 7 juillet 2025
Dernier test de l'atelier : 7 juillet 2025
Copyright 2026 Google LLC. Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.