Aller au contenu

Install MrJob


Installation et test de la librairie MrJob

Il s’agit ici d’exécuter l’exemple de script, vu en cours, permettant de compter les mots d’un livre en utilisant la librairie MRJob. Ici, on travaille sur sa propre machine, en local (et non pas sur le cluster Hadoop).

Commencez par installer cette librairie :

python3 -m pip install mrjob

Statut de la librairie

MrJob n’est plus activement maintenu depuis 2021 (version 0.7.4), mais reste pleinement fonctionnel sur Python 3.9–3.11. C’est une excellente librairie pédagogique pour apprendre le MapReduce en Python pur avant de passer à des frameworks plus récents (Spark).

Créez un répertoire sur votre DD, et déposez-y les 2 scripts vus en cours ainsi que le fichier dracula :

Test de wc_mrjob_1.py

python3 wc_mrjob_1.py < dracula > resultInline.txt
Vérifiez, avec la commande cat resultInline.txt que le fichier contient bien le résultat escompté. Les symboles < et > sont des redirections en entrée et en sortie respectivement. Cette commande est identique à
python3 wc_mrjob_1.py -r inline < dracula > resultInline.txt
le mode inline précisant que le job est lancé sur un seul process pour réaliser des tests.

Pour lancer le job sur plusieurs sous-process concurrents (en utilisant les différents cœurs de votre processeur), il faut utiliser le mode local :

python3 wc_mrjob_1.py -r local < dracula > resultLocal.txt

Test de wc_mrjob_2.py

Ce second script illustre deux fonctionnalités avancées de MrJob : le mapper accumule des compteurs dans __init__ sans rien émettre ligne par ligne, puis les émet d’un coup via mapper_final() une fois toutes les lignes traitées.

python3 wc_mrjob_2.py < dracula

La sortie doit afficher trois valeurs : le nombre de caractères, de mots et de lignes du fichier.