Sommaire

Wordcount, en local

Nous allons ici faire fonctionner l’algorithme map-reduce qui compte les mots d’un fichier texte, en local, i.e. sans exploiter le parallélisme que propose le framework Hadoop. Le programme est constitué de deux scripts Python qui sont appelés successivement selon la méthode décrite ci-dessous. Il s’agit ici surtout de comprendre la logique algorithmique.

Remarque : Pour ce TP et le suivant, vous devez savoir ouvrir un Terminal sur votre machine, quelque soit le système d’exploitation. Sous Windows 10 (et successeurs), vous pourrez utiliser le programme Powershell (installé par défaut ) qui est très similaires au Terminal de Linux et de Mac OS X.
Vous devez aussi savoir a minima naviguer dans vos dossiers à l’aide de la commande cd. Typiquement :

cd c:\Users\stephane\TP_Hadoop # Windows
cd ~\stephane\TP_Hadoop        # Mac, linux

Si vous souhaitez remonter d’un niveau dans la hiérarchie des dossiers: cd ... Des tutos vidéo existent pour découvrir les commandes de bases (identiques à celles que l’on retrouve sur les systèmes Linux), dont celui-ci. Noter enfin que Powershell inclus git, wget et ssh : trois outils que nous utiliserons durant les TPs.


Récupération et lancement des scripts Python

Pour récupérer le scripts, suivez les consignes:

  • Ouvrez un Terminal et déplacez-vous dans votre dossier de travail (avec la commande cd). Tapez la commande permettant de récupérer les fichiers nécessaires à ce TP.
git clone https://gitlab.ec-lyon.fr/sderrode/TP_BigData_ECL.git

Constatez, dans un gestionnaire de fichiers, que cette commande a permis de rapatrier des fichiers répartis dans plusieurs dossiers dont : TP_Hadoop et TP_SparQL. Nous allons ici travailler sur le dossier TP_Hadoop. Pensez à conserver ce répertoire durant toute la durée du MSO, car nous serons amenés à l’utiliser lors de toutes les séances de TP.

  • Dans le Terminal, déplacez-vous dans le dossier wordcount, en lançant successivement les 3 commandes suivantes :
cd TP_BigData_ECL
cd TP_Hadoop
cd wordcount

ou plus simplement :

cd TP_BigData_ECL/TP_Hadoop/wordcount

La commande ls permet de lister le contenu du dossier. Vous pouvez observer la présence des 2 fichiers mapper.py et reducer.py. Commençons par télécharger le livre Dracula (libre de droit) depuis cette adresse (attention aux ajouts d’extension automatique de Windows), ou en exécutant, depuis un Terminal, la commande

wget http://www.textfiles.com/etext/FICTION/dracula
  • Lancez la commande suivante et observez le résultat:
cat dracula | python mapper.py

Remarques Windows
- Si vous utilisez Windows, remplacer python par python.exe. Pensez à faire ce changement partout dans l’énoncé. Si la commande python.exe ne fonctionne pas, alors essayez de régler le problème avec le point suivant.
- Pour les étudiants utilisant Windows, vous pourriez rencontrer des difficultés avec la ligne précédente, qui fait appel à Python en ligne de commandes. La raison : l’endroit où est stocké le programme python.exe n’est pas connu de votre machine, il faut donc le préciser en modifiant la variable d’environnement PATH. Pour cela, vous pouvez suivre les indications données dans la Section Method 2: Manually add Python to Windows Path de ce lien.

  • Lancez ensuite la commande entière et observez le résultat:
cat dracula | python mapper.py | sort | python reducer.py 

Remarque importante La première ligne de tous vos scripts Python devra être

#!/usr/bin/env python3

Cette ligne indique que si le script doit être exécuté, alors c’est avec python3 qu’il doit l’être.