0% ont trouvé ce document utile (0 vote)
18 vues12 pages

tp3 Hadoop

Le document présente un compte rendu des exercices réalisés dans le cadre d'un TP sur MapReduce, incluant la création de répertoires, le transfert de fichiers vers HDFS, et le développement de scripts mapper et reducer. Les étapes comprennent la vérification de la présence des fichiers, l'attribution des droits d'exécution, et le lancement de jobs MapReduce pour traiter des données sur la population des villes et le comptage de mots. Les résultats finaux sont récupérés pour consultation en local après traitement.

Transféré par

nbensoltana08
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
18 vues12 pages

tp3 Hadoop

Le document présente un compte rendu des exercices réalisés dans le cadre d'un TP sur MapReduce, incluant la création de répertoires, le transfert de fichiers vers HDFS, et le développement de scripts mapper et reducer. Les étapes comprennent la vérification de la présence des fichiers, l'attribution des droits d'exécution, et le lancement de jobs MapReduce pour traiter des données sur la population des villes et le comptage de mots. Les résultats finaux sont récupérés pour consultation en local après traitement.

Transféré par

nbensoltana08
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Compte Rendu ~ TP2

Exercice 1:

1/ Le répertoire TP3 a été créé, contenant deux sous-répertoires :

●​ code : pour les scripts mapper et reducer​

●​ data : pour les fichiers de données sources et les résultats

2/

Le fichier [Link] a été copié dans le dossier data. La commande ls a permis de


vérifier que le fichier a bien été déplacé.

3/

Un répertoire Myinputnour a été créé dans HDFS pour accueillir les donné[Link]
commande hdfs dfs -ls a été utilisée pour vérifier sa présence
Compte Rendu ~ TP2
4/

Le fichier [Link] a été copié dans le répertoire Myinputnour sur HDFS. Cela permet
un stockage distribué en vue de l'exécution MapReduce.

5/

La commande tail a été utilisée en local pour visualiser les dernières lignes du fichier.
Avant le test, le script [Link] a été rendu exécutable avec chmod +x. Il a ensuite
été testé en local via une redirection de fichier.
Compte Rendu ~ TP2

Le script [Link] a été créé puis testé avec les mêmes étapes de vérification que le
mapper.

6/ Après le lancement du job, les résultats ont été vérifiés dans le fichier part-00000
généré dans le répertoire de sortie.

7/
Compte Rendu ~ TP2
Le fichier de résultat part-00000 a été déplacé de HDFS vers le système local à l’aide
de la commande hdfs dfs -get, afin de pouvoir le consulter ou l’exploiter plus
facilement en dehors de l’environnement distribué.

Exercice 2:
1/

Dans cette première étape, nous avons navigué à l’aide du terminal jusqu’au répertoire
TP3/data. Le terminal montre la commande ls -l utilisée pour vérifier que le fichier
[Link] est bien présent dans ce répertoire, avec une taille d’environ 144
Mo.
Une fois le fichier disponible localement, nous l’avons copié dans HDFS via la
commande :

Cette étape est essentielle pour permettre à Hadoop de traiter le fichier, car les
traitements MapReduce se basent sur des données stockées dans le système de
fichiers distribué (HDFS). Le répertoire myinputnour avait déjà été créé à l’exercice
précédent, ce qui justifie sa réutilisation ici.
Compte Rendu ~ TP2

Enfin, nous avons utilisé la commande tail pour visualiser les dernières lignes du
fichier. Cela permet de confirmer la structure du fichier CSV, notamment que les
champs sont séparés par des virgules, et que la population apparaît dans la cinquième
colonne.

🧠 Création du script [Link]


Dans cette étape, nous avons rédigé le script [Link] à l’aide de l’éditeur gedit.

🧠 Création du script [Link]


Le fichier [Link], lui aussi écrit dans gedit, agit comme un filtre. Il lit les paires
clé-valeur produites par le mapper et vérifie si la valeur population est bien
renseignée, c’est-à-dire si elle contient uniquement des chiffres (isdigit()). Si la
condition est respectée, la ligne est conservée et affichée. Ce reducer permet donc
d’éliminer toutes les villes dont la population est vide ou invalide.
Compte Rendu ~ TP2

🔐 Attribution des droits d'exécution


Après l’écriture des deux scripts, nous avons attribué les droits d’exécution à l’aide de
la commande chmod +x. Cette commande est indispensable pour que Hadoop puisse
exécuter les fichiers Python comme des scripts.

🧪 Test local du mapper & reducer

🧠 Script [Link] avec compteurs


Compte Rendu ~ TP2
🚀 Lancement du job MapReduce en local

🚀 Lancement du job MapReduce dans hdfs

📊 Mapper pour l’histogramme :


Dans cette version du script [Link], nous avons modifié la logique afin de
construire un histogramme des villes selon leur population. Une liste de bornes (bins)
est définie pour regrouper les villes en tranches : [10, 100, 1000, ..., 100000000]. Le
script lit chaque ligne, extrait la population si elle est renseignée, puis identifie à
quelle tranche la ville appartient. Il émet ensuite une paire clé-valeur où la clé est la
borne supérieure du bin (par exemple 1000) et la valeur est 1. Cette approche permet
de compter, par la suite, combien de villes tombent dans chaque intervalle.
Compte Rendu ~ TP2
🧮 Reducer pour l’histogramme:
Le fichier [Link] est le reducer correspondant à ce mapper. Il lit les paires bin\t1,
trie les données (automatiquement fait par Hadoop), puis compte le nombre de villes
associées à chaque tranche de population. Pour chaque changement de tranche (bin),
il affiche la clé (la borne du bin) suivie du total des villes correspondantes.

📤 Résultat final du job MapReduce : histogramme des populations


Compte Rendu ~ TP2
Exercice 3:
Dans un premier temps, nous avons déplacé le fichier texte [Link] depuis le
bureau vers le répertoire de travail à l’aide de la commande mv

📤 Copie du fichier [Link] vers HDFS

🧠 Écriture du script [Link]

Le fichier [Link] a été créé pour lire chaque ligne du texte, transformer tous les
caractères en minuscules, séparer la ligne en mots, puis produire une sortie du type
mot\t1 pour chaque mot détecté.
Compte Rendu ~ TP2

🧠 Écriture du script [Link]

Le fichier [Link] a été conçu pour agréger les occurrences de chaque mot
produites par le mapper. Il lit les paires mot\t1 depuis l’entrée standard, trie les mots
automatiquement (grâce à Hadoop), puis les regroupe. Lorsqu’un mot est répété, le
script incrémente un compteur. À chaque changement de mot, le script affiche le total
accumulé pour ce mot, au format mot\tnombre_occurrences.

🔐 Attribution des droits d’exécution


Enfin, nous avons utilisé chmod +x pour rendre les scripts [Link] et
[Link] exécutables. Cela est indispensable pour qu’ils puissent être appelés
directement par Hadoop dans le cadre du job MapReduce.
Compte Rendu ~ TP2
🚀 Lancement du job Mapper en local

🚀 Lancement du job Reducer en local


Compte Rendu ~ TP2
🚀 Lancement du job MapReduce dans hdfs
Une fois les scripts [Link] et [Link] prêts et rendus exécutables, nous
avons lancé un job MapReduce complet

📄 Affichage des résultats avec hdfs dfs -cat

💾 Récupération des résultats en local


Cette commande permet de télécharger le fichier de sortie depuis HDFS vers le
système de fichiers local, afin de l’ouvrir, l’imprimer ou l’archiver. Cette étape est
essentielle pour visualiser ou intégrer les résultats dans d’autres outils hors Hadoop.

Vous aimerez peut-être aussi