Aller au contenu

Quiz 03 – Spark sur cluster : Standalone, Driver, Executors et HDFS

  • Jour 1
  • 20 questions
  • Seuil de réussite : 70 %
  • 21 flashcards

Contenus évalués : rôles du Driver, du Cluster Manager, du Worker et de l’Executor ; `spark-submit`, `--master` et `--deploy-mode` avec un code métier inchangé ; HDFS, NameNode, DataNode, blocs et réplication ; `core-site.xml` et `hdfs-site.xml` ; le `docker-compose.yml` du TP 3, ses ports et la Spark Master UI ; place du mode Standalone face à YARN, Kubernetes et Mesos ; lecture des sorties du TP 3, diagnostic des blocages fréquents et choix d’approche en mode dégradé.

Une seule bonne réponse par question. Toutes les valeurs citées sont celles des TP de la formation. Le corrigé détaillé s’affiche après la correction. Ce quiz prépare le QCM de validation des acquis du dernier jour.

Question 1

Pendant le TP 3, ton job calcule reduceByKey sur les courses. Quel composant exécute réellement les tâches sur les partitions ?

Question 2

Dans la Partie A, le script start_cluster_local.sh lance un processus org.apache.spark.deploy.master.Master. Quel rôle joue ce processus ?

Question 3

Voici la création de la session dans tp2_cluster.py :

spark = SparkSession.builder.appName("TP3-cluster").getOrCreate()

Pourquoi cette ligne ne contient-elle pas d’appel à .master() ?

Question 4

spark-submit accepte --deploy-mode client (par défaut) ou --deploy-mode cluster. Qu’est-ce que ce paramètre change ?

Question 5

Dans la Partie B, le compose démarre un conteneur namenode et un conteneur datanode. Comment le travail se répartit-il entre les deux ?

Question 6

Tu veux passer ce cluster en production avec trois DataNodes, et donc trois copies de chaque bloc. Quel fichier modifies-tu, et quelle propriété ?

Question 7

trips.csv pèse environ 12 Mo. Le hdfs-site.xml du TP fixe dfs.blocksize à 134217728 (128 Mo) et dfs.replication à 1. Après le hdfs dfs -put, que montre l’UI HDFS pour ce fichier ?

Question 8

La Partie B est lancée avec docker compose up -d. Depuis ton navigateur, tu veux vérifier l’application, le worker et le nombre de cœurs utilisés. Quelle URL ouvres-tu ?

Question 9

Partie A, bonus : tu lances un second worker sur ton portable de 4 cœurs, puis tu relances le spark-submit sur les 120 000 courses. Le job n’est pas plus rapide. Quelle est l’explication la plus probable ?

Question 10

Ton entreprise dispose déjà d’un cluster Hadoop géré par YARN. Pour y lancer tp2_cluster.py, que fais-tu ?

Question 11

Partie A. Tu as lancé start_cluster_local.sh sans variable d’environnement particulière, puis le spark-submit. La sortie contient ces lignes :

Master : spark://127.0.0.1:7077 — données : data
...
Top 10 des zones de départ — calculé sur 2 cœurs du cluster

D’où vient ce « 2 » ?

Question 12

Partie B, bonus. Tu décommentes spark-worker-2 dans docker-compose.yml, tu relances docker compose up -d puis le spark-submit. Combien de cœurs la Spark Master UI affiche-t-elle maintenant pour le cluster ?

Question 13

Dans la Partie B, tu exécutes :

docker compose exec namenode hdfs dfs -put /workspace/data/trips.csv /workspace/data/taxi_zone_lookup.csv /data

Pourquoi le chemin /workspace/data/trips.csv existe-t-il dans le conteneur namenode ?

Question 14

Partie A. Ton notebook du TP 2 est encore ouvert. Pendant l’exécution du spark-submit, tu ouvres http://localhost:4040 et tu n’y vois que les jobs du notebook, pas ceux de « TP3-cluster ». Que se passe-t-il ?

Question 15

Partie A. Le spark-submit échoue aussitôt avec Connection refused sur le port 7077. Quel diagnostic retiens-tu ?

Question 16

Partie A. Tu as lancé start_cluster_local.sh depuis un terminal où le venv n’était pas activé. Le job démarre, puis les Executors meurent avec Python in worker has different version. Que fais-tu ?

Question 17

Tu as installé PySpark 4.2.0. Depuis ton poste, tu soumets tp2_cluster.py au Master du compose, publié sur le port 7077. Tu n’as pas modifié SPARK_VERSION, dont la valeur par défaut est 4.0.0. Le job échoue avec Incompatible Spark version. Quelle correction appliques-tu ?

Question 18

Ton équipe veut lancer le même job sur un vrai cluster de trois machines. Un collègue propose de garder la commande de la Partie A, avec le chemin data. Quel est ton avis ?

Question 19

Un collègue cherche sbin/start-master.sh dans le SPARK_HOME de ton venv et ne le trouve pas. Pourquoi start_cluster_local.sh passe-t-il par spark-class ?

Question 20

Le matin du TP 3, docker compose up -d échoue chez plusieurs participants : le proxy bloque l’accès à hub.docker.com. Quelle approche retiens-tu pour garder l’objectif du TP ?

Cliquez sur une carte pour la retourner. Mélangez-les pour une révision active.

1 / 21

Dépôt des participants : formations2026/formation-spark-ml (branche participants)

Contenu pédagogique © Ambient IT · 140 Avenue Jean Lolive, 93500 Pantin · formation@ambient-it.net · +33 (0)1 48 10 09 46

Organisme de formation enregistré sous le numéro 11 75 54743 75. Cet enregistrement ne vaut pas agrément de l'État.