Table des Matières


Tests de spark avec la librairie pyspark

Nous allons ici faire fonctionner à nouveau l’algorithme de comptage de mots, mais cette fois-ci rédigé avec pyspsark, la librairie python qui permet de programmer avec Spark.

Relancer le cluster

Il vous faut, dans un premier temps, relancer le cluster que nous avions installé pour le TP Hadoop map-reduce, avec son Namenode et ses deux Datanodes. Tout d’abord, lancer le logiciel Docker Desktop (pour lancer les daemons de Docker). Puis, dans un premier Terminal, tapez :

docker start hadoop-master hadoop-slave1 hadoop-slave2

Entrez alors dans le bash du Namenode :

docker exec -it hadoop-master bash

Vérifiez enfin que HDFS est bien monté, avec la commande :

hadoop fs -ls

wordcount en Spark

Entrez dans le répertoire wordcount, listez les fichiers contenus dans ce répertoire :

cd TP_Spark/wordcount
ls

le dossier contient un unique script de comptage de mots rédigé en pyspark.

Avant de lancer le script, il convient de vérifier que le répertoire sortie n’existe pas déjà sous HDFS. Pour faire cela, on tente de l’effacer (qu’il existe ou non, c’est plus sûr et plus rapide !) :

hadoop fs -rm -r -f sortie

Ensuite, lancez le programme de comptage de mots sur le livre dracula :

spark-submit --deploy-mode client --master local[2] PySpark_wc.py input/dracula

Pour vérifier le résultat, scrutez le contenu du répertoire sortie sous HDFS :

hadoop fs -ls sortie

et le contenu des deux fichiers de sortie

hadoop fs -text sortie/part-00000
hadoop fs -text sortie/part-00001

Le Job est exécuté localement, sur le client (i.e notre compte Linux), en exploitant 2 threads. Le répertoire de sortie est fixé dans le programme python lui même.

Remarque : Le mode --deploy-mode cluster permet d’exécuter le programme sur le cluster Hadoop (mode principalement utilisé en phase de production, et non en phase de mise au point). Dans ce cas, il vous faut aussi préciser l’option --master yarn (puisque notre cluster est géré par Hadoop Yarn, où Yarn est le nom du moteur Hadoop):

hadoop fs -rm -r -f sortie
spark-submit --deploy-mode cluster --master yarn  PySpark\_wc.py input/dracula

Travail à faire Faites évoluer la version précédente de telle manière que l’on ne garde que les mots qui apparaissent dans le texte au moins X fois, la valeur de X étant fixée par un argument supplémentaire lors de l’appel à spark-submit. Par exemple :

spark-submit --deploy-mode client --master local[2] PySpark_wc.py input/dracula 1000

Tester les scripts vus en cours

D’abord, créez un nouveau répertoire, à la racine de votre compte Linux, et déplacez-vous dedans :

cd ../scripts

Vous pouvez ainsi tester les scripts vus en cours, par exemple :

spark-submit --deploy-mode client --master local[2] PySpark_Pi.py