Skip to content

baha1218/HadoopPython

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Déploiement de donnée sur Hadoop avec Python et Spark

Dans cette documentation nous allons :

  • Compter les données dans notre cluster
  • Importer et pousser un fichier csv sur notre cluster
  • Génerer un graphique

Prérequis

🛠 Configuration

Hosts :

Dans un premier temps, nous allons installer pyspark sur VM1 et VM2. Mes machine sont des Red Hat donc j'utilise dnf pour installer mes paquets.

dnf install python3 -y && dnf install python3-pip -y && pip3 install pyspark

Nous allons maintenant installer pyspark sur nos 5 conteneurs.

Datanode :

Configuration des 3 datanodes sur la VM1

Il vous faudra executer les commandes ci-dessous sur les 3 datanodes Obtenez les ids de votre conteneur.

docker ps

Connectez vous au conteneur grace à l'id.

docker exec -ti <id> bash

Installez pyspark.

apt-get install python3 -y && apt-get install python3-pip -y && pip3 install pyspark
/usr/local/spark/sbin/start-worker.sh spark://namenode:7077

Configuration du datanode sur la VM2

Obtenez l'id de votre conteneur.

docker ps

Connectez vous au conteneur.

docker exec -ti datanode4 bash

Installez pyspark en renseignant la bonne ip, celle de la VM1.

apt-get install python3 -y && apt-get install python3-pip -y && pip3 install pyspark
/usr/local/spark/sbin/start-worker.sh spark://ip:7077

Namenode :

Obtenez les ids de votre conteneur.

docker ps

Connectez vous au conteneur grace à l'id.

docker exec -ti <id> bash

Installez pyspark.

apt-get install python3 -y && apt-get install python3-pip -y && pip3 install pyspark
/usr/local/spark/sbin/start-master.sh

Une fois l'installation terminé sur notre cluster, tout le reste de la configuration se fera sur votre namenode.

Installez un editeur de texte.

apt-get install nano

Créer un fichier text.txt et écrivez quelques mots.

nano text.txt

Poussez le fichier text.txt dans votre cluster dans le repertoire /user/root

hadoop fs -mkdir -p /user/root/
hadoop fs -put text.txt

Vérifiez sur le webui dans Utilities/Browse the file system. webuihadoop

Créer un dossier spark-logs dans votre cluster.

hadoop fs -mkdir /spark-logs

Créer un fichier text.py

nano text.py
from pyspark import SparkContext

# Instantiation d'un SparkContext
sc = SparkContext()

# Lecture d'un fichier texte : le fichier est décomposé en lignes.
lines = sc.textFile("text.txt")

# Décomposition de chaque ligne en mots
word_counts = lines.flatMap(lambda line: line.split(' ')) \
                   .map(lambda word: (word, 1)) \
                   .reduceByKey(lambda count1, count2: count1 + count2) \
                   .collect()

# Chaque paire (clé, valeur) est affichée
for (word, count) in word_counts:
    print(word, count)

Vous pouvez maintenant executer le script qui va compter le nombre de mot dans le fichier que vous avez push dans le cluster.

python3 text.py

Nous allons maintenant telecharger des données et les push dans notre cluster. Nous genererons par la suite des statistiques avec pyspark.

Les données telechargées sont sous format csv. Il s'agit des voeux Parcoursup de l'année 2020;

Télechargez et renommez les données.

wget https://www.data.gouv.fr/fr/datasets/r/7400c7d1-8db6-43b2-9235-aae564223963 
mv 7400c7d1-8db6-43b2-9235-aae564223963 fr-esr-parcoursup.csv

Poussez les données dans votre cluster

hadoop fs -put fr-esr-parcoursup.csv

Créer un fichier test_spark.py et executez le.

nano test_spark.py
python3 test_spark.py

Affichez les données géneré dans le cluster

hadoop fs -cat /user/root/result-parcoursup.csv/part-00000-9d5a5330-f923-4806-a095-dd8740e8a120-c000.csv

Attention ! Votre fichier a surement un nom différent. Vous pouvez vérifier sur le webui ou avec un hadoop fs -ls /user/root/result-parcoursup.csv/

Copiez l'output et créez un fichier result.txt. N'oubliez pas de supprimer la premiere ligne !

IFSI,D.E secteur sanitaire,D.E Infirmier,1391246
Ecole d'Ingénieur,Formations  des écoles d'ingénieurs,Formation d'ingénieur Bac + 5,626037
PASS,Licence - Sciences - technologies - santé,Parcours d'Accès Spécifique Santé (PASS),512607
Licence,Licence - Droit-économie-gestion,Droit,321999
BTS,BTS - Services,Management Commercial Opérationnel,291727
DUT,DUT - Service,Techniques de commercialisation,214800
DUT,DUT - Service,Gestion des entreprises et des administrations,205799
CPGE,Classe préparatoire scientifique,MPSI,198311
BTS,BTS - Services,Négociation et digitalisation de la Relation Client,193432
CPGE,Classe préparatoire scientifique,PCSI,183942

Windows

Nous ne pouvons pas visualiser ces données sans interface graphique donc j'ai transféré mon fichier result.txt sur mon windows avec python d'installer. Un fichier result_spark.py doit aussi etre créer dans le meme repertoire que result.txt.

Rendez vous avec le cmd dans l'emplacement où se trouve vos fichiers. Vous devez avoir installer Python sur windows. N'oubliez pas d'installer matplotlib.

pip install matplotlib

Pour finir, affichez votre graphique.

type result.txt | python3 result_spark.py

About

Créer des graphique avec un jeu de données

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages