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

Tp3 Mapreduce With Python

Ce document décrit un TP sur l'utilisation de MapReduce avec Python sur un cluster Hadoop. Il détaille les étapes pour installer Python sur les nœuds, créer des scripts mapper et reducer, tester localement, copier les fichiers sur le nœud maître et exécuter un job MapReduce pour calculer le total des ventes par magasin à partir d'un fichier 'purchases'. Le document insiste sur l'importance de tester le code localement avant de l'exécuter sur le cluster.

Transféré par

arch.detective5
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)
0 vues4 pages

Tp3 Mapreduce With Python

Ce document décrit un TP sur l'utilisation de MapReduce avec Python sur un cluster Hadoop. Il détaille les étapes pour installer Python sur les nœuds, créer des scripts mapper et reducer, tester localement, copier les fichiers sur le nœud maître et exécuter un job MapReduce pour calculer le total des ventes par magasin à partir d'un fichier 'purchases'. Le document insiste sur l'importance de tester le code localement avant de l'exécuter sur le cluster.

Transféré par

arch.detective5
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

TP 3 : MapReduce with python

Dans ce TP nous allons utiliser le cluster hadoop créé au TP2.

Etape 1 : Installer Python dans les nœuds


Ouvrez un terminal sur chaque nœud du cluster Hadoop et installez Python 3.

Pour ouvrir un shell Bash dans un cluster : docker exec -it hadoop-master bash
(remplacez "hadoop-master" par le nom du nœud que vous souhaitez ouvrir).

Pour installer Python 3 : apt update && apt upgrade && apt install python3.

Pour vérifier les noms des nœuds : docker ps ou ouvrez Docker Desktop sur
Windows/Mac.

Etape 2 : Tester en Locale

1. Création du fichier [Link] :


Créer un fichier [Link] contenant le code suivant :

#!/usr/bin/python3
# -*-coding:utf-8 -*

import sys

for line in [Link]:


line = [Link]()
words = [Link]()
for word in words:
print(word + "\t1")

2. Création du fichier [Link] :

Créer un fichier [Link] contenant le code suivant :


#!/usr/bin/python3
# -*-coding:utf-8 -*

from operator import itemgetter


import sys

current_word = None
current_count = 0
word = None

for line in [Link]:


line = [Link]()
word, count = [Link]('\t', 1)

try:
count = int(count)
except ValueError:
continue

if current_word == word:
current_count += count
else:
if current_word:
print(current_word + "\t" + str(current_count))
current_count = count
current_word = word

if current_word == word:
print(current_word + "\t" + str(current_count))

3. Tester en local :
Pour tester localement, utilisez un éditeur de texte comme le Bloc-notes pour
créer un fichier texte nommé [Link] dans le même répertoire que vos scripts
[Link] et [Link]. Ajoutez-y quelques lignes de texte.
Utilisez la commande suivante pour lire le contenu du fichier [Link], le passer
à [Link], trier les résultats, puis les passer à [Link] :

type [Link] | python [Link] |sort| python [Link]


Etape 3 : Copier les fichiers dans le nœud maitre:

Copiez votre [Link] et [Link] dans le nœud maître Hadoop :

Remplacer l’ID eff4f966c9ef par celui de votre nœud maître.

docker cp [Link] eff4f966c9ef:MapReduceTut/[Link]


docker cp [Link] eff4f966c9ef:MapReduceTut/[Link]

Etape 4 : Exécution de MapReduce

Entrer dans le contenaire master :


docker exec -it hadoop-master bash

Créer un répertoire dans HDFS, appelé input. Et charger le fichier [Link]


dans ce répertoire.

hdfs dfs -mkdir input


hdfs dfs -put [Link] input

Exécuter MapReduce en utilisant le script suivant :

mapred streaming \
-input input/[Link] \
-output output \
-mapper "python3 [Link]" \
-reducer "python3 [Link]" \
-file /MapReduceTut/[Link] \
-file /MapReduceTut/[Link]
Application :

Ecrire un job Map Reduce permettant, à partir du fichier purchases initial, de


déterminer le total des ventes par magasin. Il est à noter que la structure du fichier
purchases est de la forme suivante :

Veiller à toujours tester votre code en local avant de lancer un job sur le cluster.

Vous aimerez peut-être aussi