Rapport Mini Projet Big Data

1/8
100%

![UVT - Charte graphique](data:image/jpeg;base64...) ![Institut supérieur d'informatique (Tunisie) — Wikipédia](data:image/png;base64...)

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

![Terminal output when installing Spark dependencies.](data:image/png;base64...)

  • 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

![Terminal output when verifying Java, Git and Scala versions.](data:image/png;base64...)

  • 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)

![Output when saving Spark to your Ubuntu machine.](data:image/png;base64...)

  • 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

![Text Description automatically generated](data:image/png;base64...)

  • 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/)

![The home page of the Spark Web UI.](data:image/png;base64...)

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 :

![Text Description automatically generated](data:image/png;base64...)

Publicité

![](data:image/png;base64...)

  • 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 :

![](data:image/png;base64...)

![](data:image/png;base64...)

![](data:image/png;base64...)

![A picture containing text Description automatically generated](data:image/png;base64...)

  • 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

![Text Description automatically generated](data:image/png;base64...)

![](data:image/png;base64...)

![Text Description automatically generated](data:image/png;base64...)

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.

Rapport Mini Projet Big Data

Big Data and Data Processing using Apache Spark · notes

Voir tous les documents en intelligence artificielle et données

![UVT - Charte graphique](data:image/jpeg;base64...) ![Institut supérieur d&#39;informatique (Tunisie) — Wikipédia](data:image/png;base64...)

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

![Terminal output when installing Spark dependencies.](data:image/png;base64...)

  • 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

![Terminal output when verifying Java, Git and Scala versions.](data:image/png;base64...)

  • 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)

![Output when saving Spark to your Ubuntu machine.](data:image/png;base64...)

  • 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

![Text Description automatically generated](data:image/png;base64...)

  • 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/)

![The home page of the Spark Web UI.](data:image/png;base64...)

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 :

![Text Description automatically generated](data:image/png;base64...)

Publicité

![](data:image/png;base64...)

  • 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 :

![](data:image/png;base64...)

![](data:image/png;base64...)

![](data:image/png;base64...)

![A picture containing text Description automatically generated](data:image/png;base64...)

  • 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

![Text Description automatically generated](data:image/png;base64...)

![](data:image/png;base64...)

![Text Description automatically generated](data:image/png;base64...)

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.