Word Count
MAPREDUCE
HADID | BIG DATA | Date
WordCount
Word Count est surnommé le "Hello World !" de Hadoop. Ce programme compte le
nombre d’occurrences de chaque mot dans un corpus représentant l’ensemble des
œuvres de Shakespeare.
Le développement et la mise en œuvre d’un programme Hadoop comprennent en
général les phases suivantes :
− Préparation des données.
− Importation des données dans HDFS.
− Ecriture du programme Hadoop et validation en environnement de test.
− Exécution du programme Hadoop en environnement de production.
− Récupération et analyse des résultats.
1. PRÉPARATION DES DONNÉES
La totalité de l’œuvre de Shakespeare est stockée dans un seul fichier au format Plain
Text UTF-8 provenant du projet Gutenberg (http://www.gutenberg.org/). Ce fichier
peut être téléchargé à l’adresse http://www.gutenberg.org/ebooks/100. Si cette adresse
ne fonctionne pas, lancer une recherche Google sur l’expression download shakespeare
works. Le fichier téléchargé est enregistré sur le bureau sous le nom pg100.txt.
Le fichier se présente sous la forme d’un ensemble de lignes, chaque ligne se terminant
par un signe de nouvelle ligne (\n). Chaque ligne est composée de mots séparés par un
espace ou est vide.
PAGE 1
2. Importation des données dans HDFS
Pour importer le fichier pg100.txt dans HDFS, procédez de la manière suivante :
Ouvrez le Terminal.
Dans HDFS, créez le sous-répertoire data dans le répertoire courant, puis
assurez-vous que le répertoire data a bien été créé.
Copiez le fichier local pg100.txt dans le répertoire data.
Vérifiez que le fichier pg100.txt est bien présent dans HDFS.
Les commandes à utiliser sont les suivantes :
3. WordCount en Java
Ouvrez d'abord Eclipse -> puis sélectionnez Fichier -> Nouveau -> Projet Java
-> Nommez-le WordCount -> puis Terminez.
Créez trois classes Java dans le projet. Nommez-les WordCountDriver (ayant la
fonction principale), WordCountMapper, WordCountReducer.
a. Le driver.
Le driver est un programme Java qui s’exécute généralement sur la machine cliente
(donc pas dans le cluster Hadoop). Il permet de configurer le job puis de le soumettre
au cluster Hadoop pour exécution.
Vous devez copier-coller le programme dans le fichier Driver.doc dans
WordCountDriver Class.
b. Le mapper
PAGE 2
Le mapper est un programme Java exécuté en parallèle sur plusieurs nœuds esclaves
(slave nodes) du cluster Hadoop, chaque instance étant un mapper. Chaque mapper
compte le nombre d’occurrences d’un mot dans une partie des œuvres de Shakespeare
(les reducers se chargeant de synthétiser le travail des mappers).
Vous devez copier-coller le programme dans le fichier mapper.doc dans
WordCountMapper Class.
c. Le reducer
Le reducer est un programme Java exécuté en parallèle sur plusieurs nœuds esclaves
(slave nodes) du cluster Hadoop, chaque instance étant un reducer. Chaque reducer :
Se voit affecter par Hadoop un sous-ensemble de l’ensemble des mots
constituant les œuvres de Shakespeare.
Est chargé, pour chaque mot de ce sous-ensemble, de cumuler les comptages
de ce même mot issus, le cas échéant, de différents mappers.
Vous devez copier-coller le programme dans le fichier reducer.doc dans
WordCountReducer Class.
d. Compilation et exécution du job
Vous devez maintenant créer un fichier jar.
Faites un clic droit sur Projet-> Cliquez sur Export-> Sélectionnez la destination
d'exportation en tant que fichier Jar-> Nommez le fichier jar (WC.jar) -> Cliquez sur
suivant -> enfin cliquez sur Terminer.
Copiez maintenant ce fichier dans le répertoire Workspace de Cloudera
Le programme WordCount est prêt à être exécuté.
Exécution du job
La commande permettant de lancer WordCount s’analyse de la
façon suivante :
hadoop jar WC.jar WordCountDriver data wordcounts
hadoop : la commande à exécuter est une commande Hadoop, pas Linux.
jar : la commande à exécuter est jar, qui lance l’exécution d’un fichier JAR.
WC.jar : le fichier à exécuter est wc.jar.
WordCountDriver : nom de la classe à appeler pour lancer le job.
data : répertoire contenant les données en entrée.
PAGE 3
wordcounts : répertoire contenant les résultats en sortie.
L’exécution du job donne lieu à l’affichage de nombreux messages. Quelques
messages importants
Pour afficher les résultats :
Notez le nom du fichier contenant les résultats issus des reducers (un fichier par
reducer, donc un seul fichier dans notre cas car, en mode pseudo-distribué, un seul
reducer est utilisé).
Copiez le fichier de Hadoop sur le Bureau.
Visualisez le contenu du fichier à l’aide de gedit.
Les commandes à utiliser sont les suivantes :
PAGE 4