Présentation
Dataproc sans serveur est un service entièrement géré qui simplifie l'exécution de charges de travail Open Source analytiques et de traitement des données. Avec lui, vous n'avez pas à gérer l'infrastructure, ni à régler manuellement les charges de travail.
Dataproc sans serveur pour Spark offre un environnement optimisé, conçu pour un transfert facile des charges de travail Spark vers Google Cloud.
Dans cet atelier, vous allez exécuter une charge de travail Batch sur un environnement Dataproc sans serveur. Cette charge de travail utilisera un modèle Spark pour traiter un fichier Avro afin de créer et de charger une table BigQuery.
Objectifs de l'atelier
- Configurer l'environnement
- Télécharger les éléments de l'atelier
- Configurer et exécuter le code Spark
- Consulter les données dans BigQuery
Prérequis
Avant de cliquer sur le bouton Start Lab (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 le bouton "Start Lab" (Démarrer l'atelier), indique combien de temps les ressources cloud resteront accessibles.
Cet atelier pratique Qwiklabs vous permet de suivre vous-même 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 Platform le temps de l'atelier.
Conditions requises
Pour réaliser cet atelier, vous devez remplir les conditions suivantes :
- Vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome).
- Vous devez disposer de suffisamment de temps pour réaliser l'atelier en une fois.
Remarque : Si vous possédez déjà un compte ou un projet GCP, veillez à ne pas l'utiliser pour réaliser cet atelier.
Démarrer votre atelier et vous connecter à la console
-
Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement.
Sur la gauche, vous verrez un panneau contenant les identifiants temporaires à utiliser pour cet atelier.

-
Copiez le nom d'utilisateur, puis cliquez sur Ouvrir la console Google.
L'atelier lance les ressources, puis la page Sélectionner un compte dans un nouvel onglet.
Remarque : Ouvrez les onglets dans des fenêtres distinctes, placées côte à côte.
-
Sur la page "Sélectionner un compte", cliquez sur Utiliser un autre compte. La page de connexion s'affiche.

-
Collez le nom d'utilisateur que vous avez copié dans le panneau "Détails de connexion". Copiez et collez ensuite le mot de passe.
Remarque : Vous devez utiliser les identifiants fournis dans le panneau "Détails de connexion", et non vos identifiants Google Cloud Skills Boost. Si vous possédez un compte Google Cloud, ne vous en servez pas pour cet atelier (vous éviterez ainsi que des frais vous soient 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 aux essais offerts.
Après quelques instants, la console Cloud s'ouvre dans cet onglet.
Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche.
Activer Google Cloud Shell
Google Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud.
Google Cloud Shell vous permet d'accéder à vos ressources Google Cloud grâce à une ligne de commande.
-
Dans la barre d'outils située en haut à droite dans la console Cloud, cliquez sur le bouton "Ouvrir Cloud Shell".

-
Cliquez sur Continuer.
Le provisionnement et la connexion à l'environnement prennent quelques instants. Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Par exemple :

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.
- Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list
Résultat :
Credentialed accounts:
- @.com (active)
Exemple de résultat :
Credentialed accounts:
- google1623327_student@qwiklabs.net
- Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project
Résultat :
[core]
project =
Exemple de résultat :
[core]
project = qwiklabs-gcp-44776a13dea667a6
Remarque : Pour consulter la documentation complète sur gcloud, accédez au guide de présentation de la gcloud CLI.
Tâche 1 : Effectuer les tâches de configuration de l'environnement
Vous allez en premier lieu effectuer quelques tâches de configuration de l'environnement afin de permettre l'exécution d'une charge de travail Dataproc sans serveur.
- Dans Cloud Shell, exécutez la commande suivante pour activer l'accès via une adresse IP privée :
gcloud compute networks subnets update default --region={{{project_0.default_region |REGION}}} --enable-private-ip-google-access
- Utilisez la commande suivante pour créer un bucket Cloud Storage qui servira d'emplacement de préproduction :
gsutil mb -p {{{project_0.project_id |PROJECT_ID}}} gs://{{{project_0.project_id |PROJECT_ID}}}
- Utilisez la commande suivante pour créer un autre bucket Cloud Storage qui servira d'emplacement temporaire pour BigQuery pendant la création et le chargement d'une table :
gsutil mb -p {{{project_0.project_id |PROJECT_ID}}} gs://{{{project_0.project_id |PROJECT_ID}}}-bqtemp
- Créez un ensemble de données BigQuery pour stocker les données :
bq mk -d loadavro
Effectuer les tâches de configuration de l'environnement
Tâche 2 : Télécharger les éléments de l'atelier
Ensuite, vous allez télécharger quelques éléments nécessaires pour effectuer l'atelier dans une VM Compute Engine fournie. Vous effectuerez le reste des étapes de l'atelier dans la VM Compute Engine.
- Dans le menu de navigation, cliquez sur Compute Engine. Vous pouvez voir ici qu'une VM Linux a été provisionnée pour vous. Cliquez sur le bouton SSH à côté de l'instance lab-vm.

- Depuis l'invite de terminal de la VM, téléchargez le fichier Avro qui sera traité pour un stockage dans BigQuery :
wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/idegc/campaigns.avro
- Ensuite, déplacez le fichier Avro vers le bucket Cloud Storage de préproduction créé précédemment :
gcloud storage cp campaigns.avro gs://{{{project_0.project_id |PROJECT_ID}}}
- Téléchargez l'archive contenant le code Spark que vous exécuterez dans l'environnement sans serveur :
wget https://storage.googleapis.com/cloud-training/dataengineering/lab_assets/idegc/dataproc-templates.zip
- Extrayez l'archive :
unzip dataproc-templates.zip
- Passez au répertoire Python :
cd dataproc-templates/python
Télécharger les éléments de l'atelier
Tâche 3 : Configurer et exécuter le code Spark
Vous allez maintenant configurer quelques variables d'environnement dans le terminal de l'instance de VM et exécuter un modèle Spark pour charger des données dans BigQuery.
- Définissez les variables d'environnement suivantes pour l'environnement Dataproc sans serveur :
export GCP_PROJECT={{{project_0.project_id |PROJECT_ID}}}
export REGION={{{project_0.default_region |REGION}}}
export GCS_STAGING_LOCATION=gs://{{{project_0.project_id |PROJECT_ID}}}
export JARS=gs://cloud-training/dataengineering/lab_assets/idegc/spark-bigquery_2.12-20221021-2134.jar
- Saisissez le code suivant pour exécuter le modèle Spark Cloud Storage vers BigQuery afin de charger le fichier Avro dans BigQuery :
./bin/start.sh \
-- --template=GCSTOBIGQUERY \
--gcs.bigquery.input.format="avro" \
--gcs.bigquery.input.location="gs://{{{project_0.project_id |PROJECT_ID}}}" \
--gcs.bigquery.input.inferschema="true" \
--gcs.bigquery.output.dataset="loadavro" \
--gcs.bigquery.output.table="campaigns" \
--gcs.bigquery.output.mode=overwrite\
--gcs.bigquery.temp.bucket.name="{{{project_0.project_id |PROJECT_ID}}}-bqtemp"
Remarque : Vous pouvez ignorer les avertissements WARN FileStreamSink: Assume no metadata directory. Error while looking for metadata directory in the path... Comme il s'agit d'un simple test, aucun répertoire de métadonnées n'est nécessaire.
Remarque : Si un message d'erreur indique que le job par lot a échoué, veuillez patienter, puis réexécuter la commande jusqu'à ce que le job aboutisse.
Configurer et exécuter le code Spark
Tâche 4 : Vérifier que les données ont bien été chargées dans BigQuery
Maintenant que vous avez exécuté le modèle Spark, il est temps d'examiner les résultats dans BigQuery.
- Affichez les données de la nouvelle table dans BigQuery :
bq query \
--use_legacy_sql=false \
'SELECT * FROM `loadavro.campaigns`;'
- La requête devrait renvoyer un résultat semblable à ce qui suit.
Exemple de résultat :
+------------+--------+---------------------+--------+---------------------+----------+-----+
| created_at | period | campaign_name | amount | advertising_channel | bid_type | id |
+------------+--------+---------------------+--------+---------------------+----------+-----+
| 2020-09-17 | 90 | NA - Video - Other | 41 | Video | CPC | 81 |
| 2021-01-19 | 30 | NA - Video - Promo | 325 | Video | CPC | 137 |
| 2021-06-28 | 30 | NA - Video - Promo | 78 | Video | CPC | 214 |
| 2021-03-15 | 30 | EU - Search - Brand | 465 | Search | CPC | 170 |
| 2022-01-01 | 30 | EU - Search - Brand | 83 | Search | CPC | 276 |
| 2020-02-18 | 30 | EU - Search - Brand | 30 | Search | CPC | 25 |
| 2021-06-08 | 30 | EU - Search - Brand | 172 | Search | CPC | 201 |
| 2020-11-29 | 60 | EU - Search - Other | 83 | Search | CPC | 115 |
| 2021-09-11 | 30 | EU - Search - Other | 86 | Search | CPC | 237 |
| 2022-02-17 | 30 | EU - Search - Other | 64 | Search | CPC | 296 |
+------------+--------+---------------------+--------+---------------------+----------+-----+
Vérifier que les données ont bien été chargées dans BigQuery
Félicitations !
Vous avez exécuté une charge de travail Batch à l'aide de Dataproc sans serveur pour Spark afin de charger un fichier Avro dans une table BigQuery.
Copyright 2020 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.