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 :
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 :
- wc_mrjob_1.py — comptage de mots classique (1 mapper + 1 reducer)
- wc_mrjob_2.py — comptage de caractères, mots et lignes (introduit
mapper_final) - dracula
Test de wc_mrjob_1.py
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 à
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 :
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.
La sortie doit afficher trois valeurs : le nombre de caractères, de mots et de lignes du fichier.