 
Mastère professionnel en Logiciels libres
Rapport Mini Propjet Big Data
2020-2021
Réalisé par Mohamed Trabelsi
Encadrée par Mme Olfa Mourali
1. Introduction
Notre projet consiste à appliquer un code en spark sur un fichier texte qui réprésente les ventes
réalisé par un magasin en baseant sur un principe de MapReduce après la modilisation des RDD
pour les données de ce fichier.
1. Environement Matériel et logiciel :
- Environement Matériel :
Nous avons installé un machine vituelle sur Vmware Workstation version 15 de caractéristique suivantes :
Mémoire :4.3 GB
Processus :2
Disque de stockage :20GB
- Environement Logiciel :
Publicité
Nous avons choisi Ubuntu 20.04 comme système d’exploitation .
Apache Hadoop Version: 2.7
Apache Spark Version: 3.0.1
Docker Version 20.10.1
1. Présentation de spark
Spark est un système de traitement rapide et parallèle. Il fournit des APIs de haut niveau en Java,
Scala, Python et R, et un moteur optimisé qui supporte l'exécution des graphes. Il supporte
également un ensemble d'outils de haut niveau tels que Spark SQL pour le support du traitement
de données structurées, MLlib pour l'apprentissage des données, GraphX pour le traitement des
graphes, et Spark Streaming pour le traitment des données en streaming.
1. Hadoop et Spark
Hadoop est un framework libre et open source écrit en Java destiné à faciliter la création
d'applications distribuées (au niveau du stockage des données et de leur traitement) et
échelonnables (scalables) permettant aux applications de travailler avec des milliers de nœuds et
des pétaoctets de données. Ainsi chaque nœud est constitué de machines standard regroupées
en grappe. Tous les modules de Hadoop sont conçus selon l'idée que les pannes matérielles sont
fréquentes et qu'en conséquence elles doivent être gérées automatiquement par le framework.
Publicité
Spark peut s'exécuter sur plusieurs plateformes: Hadoop, Mesos, en standalone ou sur le cloud.
Il peut également accéder diverses sources de données, comme HDFS, Cassandra, HBase et S3.
1. Installation de Spark sur Ububtu 20.04
- Nous avons exécuté la commande suivante pour installer les trois paquets à la fois:
sudo apt install default-jdk scala git -y

- Une fois le processus terminé, vérifiez les dépendances installées en exécutant ces commandes :
java -version; javac -version; scala -version; git --version

- Nous avons téléchargé la version de Spark que vous souhaitez former leur site Web. Nous allons opter pour Spark 3.0.1 avec Hadoop 2.7
wget [https://downloads.apache.org/spark/spark-3.0.1/spark-3.0.1-bin-hadoop2.7.tgz](https://downloads.apache.org/spark/spark-3.0.1/spark-3.0.1-bin-hadoop2.7.tgz)

- Nous avons fait l’extraction de l’archive enregistrée à l’aide de la commande tar:
tar xvf spark-\*
- Nous avons déplacé le répertoire décompressé spark-3.0.1-bin-hadoop2.7 vers le répertoire opt/spark.
sudo mv spark-3.0.1-bin-hadoop2.7 /opt/spark
- Nous avons configuré les variables d’environnement. Nous avons ajouté quelques chemins d’accès à l’accueil Spark au fichier ~/.bashrc à l’aide de l’éditeur vi.
Publicité
vi ~/.bashrc
export SPARK\_HOME=/opt/spark
export PATH=$PATH:$SPARK\_HOME/bin:$SPARK\_HOME/sbin

- Il faut activer les changement avec la ligne de commande suivante :
source ~/.bashrc
- Maintenant que nous avons terminé la configuration de notre environnement pour Spark,
Nous avons démarré un serveur maître à l’aide de commande suivante :
start-master.sh
- Pour tester la bonne installation de spark nous avons ouvert un navigateur Web et entrez l’adresse IP Localhost sur le port 8080.
[http://127.0.0.1:8080/](http://127.0.0.1:8080/)

1. Dévellopement de code spark et le RDD pour MapReduce.
Nous avons téléchargé un fichier de github qui représente un les ventes d’un magasin (la
date d’opération , le type d’article, le moyen de paiment ..) à l’aide commande wget ensuite
nous avons l’extracté avec la commande tar comme suit :

Publicité

- Nous avons dévellopé un code spark qui traite ce fichier suivant l’algorithme suivant :
Ce code vient de (1) charger le fichier purchases.txt , (2) séparer les mots selon les caractères d'espacement, (3) appliquer un map sur les mots obtenus qui produit le couple (<mot>, 1), puis un reduce qui permet de faire la somme des 1 des mots identiques
Nous avons éxécuté ce code ligne par ligne :




- Pour voir les résultat de traitement il faut quiter spark en appuyant sur ctrl+d,ensuit visualiser le répertoire courrent avec la commande ls nous trouverons le rértoire créer par le code file2.count qui contient des fichiers qui contient les résultats



1. CONCLUSION
Ce projet a permis d’exploiter notre petite connaissances des outils comme spark et map reduce et mise en évidence des opérations de transformation qui représente un coté dans le monde Big Data.