Vous êtes sur la page 1sur 30

24/10/2022

MASTER INTELLIGENCE ARTIFICIELLE ET ANALYSE DES DONNÉES


IAAD
Architectures pour

BIG DATA
Pr. Youness OUBENAALLA
y.oubenaalla@umi.ac.ma

Big Data

Introduction aux Big Data

• Chaque jour, nous générons 2,5 trillions d’octets de données


• 90% des données dans le monde ont été créées au cours des quatre
dernières années
• 90% des données générées sont non structurées
• Données appelées Big Data ou Données Massives

Source:
 Capteurs utilisés pour collecter
 Messages sur les médias sociaux
 Images numériques et vidéos publiées en ligne
 Enregistrements transactionnels d’achat en ligne
 Signaux GPS de téléphones mobiles
 …

Big Data 2

1
24/10/2022

Introduction Big Data

NoSQL 3

Introduction aux Big Data

Big Data 4
https://sproutsocial.com/insights/facebook-stats-for-marketers/#general

2
24/10/2022

Introduction aux Big Data

Big Data 5

Introduction aux Big Data

NoSQL 6

3
24/10/2022

Introduction aux Big Data

https://www.smartinsights.com/internet-marketing-statistics/happens-online-60-seconds/

Sources de Big Data

Sources multiples : sites, sensors, bases de données, téléphones, serveurs:


 Détecter les sentiments et réactions des clients
 Détecter les conditions critiques ou potentiellement mortelles dans les
hôpitaux , et à temps pour intervenir
 Prédire des modèles météorologiques pour planifier l’usage optimal des
éoliennes
 Prendre des décisions risquées basées sur des données transactionnelles en
temps réel
 Identifier les criminels et les menaces à partir de vidéos, sons et flux de
données
 Étudier les réactions des étudiants pendant un cour, prédire ceux qui vont
réussir, d’après les statistiques et modèles réunis au long des années
(domaine Big Data in Education)

Big Data 8

4
24/10/2022

Challenges des Big Data

 Réunir un grand volume de données variées pour trouver de nouvelles


idées

 Capturer des données créées rapidement

 Sauvegarder toutes ces données

 Traiter ces données et les utiliser

Big Data 9

Les 5V du Big Data

 Volume

 Variété

 Vitesse

 Véracité

 Valeur

Big Data 10

5
24/10/2022

Volume

Bg Data 11

Volume
 Le prix de stockage des données a beaucoup diminué ces 30 dernières
années:
 De $100,000 / Go (1980)
 À $0.03 / Go (2021)
 Les lieux de stockage fiables (comme des SAN: Storage Area Network) ou
réseaux de stockage peuvent être très coûteux
 Choisir de ne stocker que certaines données, jugées sensibles
 Perte de données, pouvant être très utiles, comme les logs
 Comment déterminer les données qui méritent d’être stockées?
 Transactions? Logs? Métier? Utilisateur? Capteurs? Médicales? Sociales?
 Aucune donnée n’est inutile. Certaines n’ont juste pas encore servi.
 Comment stocker les données dans un endroit fiable, qui soit moins
cher
 Comment parcourir ces données et en extraire des informations
facilement et rapidement?

Big Data 12

6
24/10/2022

Volume
 Volume de données
 Augmentation de 40% par an
 De 8 zettabytes (2016) à 44 zettabytes (2020) à 74 en
2021
 volume de données augmente exponentiellement

Big Data 13

Volume

Big Data 14

7
24/10/2022

Volume
Processes 20 PB a day (2008)
Crawls 20B web pages a day (2012)/ 149,5B en 2021
Search index is 100+ PB (5/2014)

Hadoop: 365 PB, 330K nodes (6/2014)

Hadoop: 10K nodes, 150K cores, 150 PB (4/2014)

300 PB data in Hive + 600 TB/day (4/2014) - 4 petabytes 2021

S3: 2T objects, 1.1M request/second (4/2013)- 1.5 B (2021)

Big Data 15

Variété
 Pour un stockage dans des bases de données ou dans des entrepôts de données,
les données doivent respecter un format prédéfini.
 La plupart des données existantes sont non-structurées ou semi-structurées
 Données sous plusieurs formats et types
 On veut tout stocker:
 Exemple: pour une discussion dans un centre d’appel, on peut la stocker sous forme
textuelle pour son contenu, comme on peut stocker l’enregistrement en entier, pour
interpréter le ton de voix du client
 Certaines données peuvent paraître obsolètes, mais sont utiles pour certaines
décisions:
 Exemple: Pour le transport de marchandise, on a tendance à choisir le camion le plus
proche. Mais parfois, ce n’est pas la meilleure solution. D’autres problèmes peuvent
intervenir.
 Besoin de : Données GPS, Plan de livraison du camion, Circulation, Chargement du
camion, Niveau d’essence

Big Data 16

8
24/10/2022

Variété

 Différent Types:
 Données Relationnelles(Tables/Transaction)
 Données Textuelles (Web)
 Données Semi-structurées (XML)
 Données Graph
• Réseaux Sociaux, Web Semantic (RDF), …
 Données Streaming
 Une même application peut générer / collecter plusieurs types de données.
 Différentes Sources

Big Data 17

Vitesse

 Sinon, risque de perte d’informations

 Il ne suffit pas de savoir quel article un client a acheté ou réservé


 Si on sait que vous avez passé plus de 5mn à consulter un article dans une
boutique d’achat en ligne, il est possible de vous envoyer un email dès que cet
article est soldé.

Big Data 18

9
24/10/2022

Véracité

 Cela fait référence au désordre ou la fiabilité des données. Avec l’augmentation


de la quantité, la qualité et précision se perdent (abréviations, types,
déformations, source peu fiable…)

 Les solutions Big Data doivent remédier à cela en se référant au volume des
données existantes

 Nécessité d’une (très) grande rigueur dans l’organisation de la collecte et le


recoupement, croisement, enrichissement des données pour lever l’incertitude
et la nature imprévisible des données introduites dans les modèles mais aussi
pour respecter le cadre légal pour créer la confiance et garantir la sécurité et
l’intégrité des données.

Big Data 19

Valeur

 Le V le plus important
 Il faut transformer toutes les données en valeurs exploitables: les données sans
valeur sont inutiles
 Atteindre des objectifs stratégiques de création de valeur pour les clients et pour
l’entreprise dans tous les domaines d’activité

Big Data 20

10
24/10/2022

Valeur

Big Data 22

11
24/10/2022

Big Data

Hadoop

• Apache Hadoop est un framework open-source pour stocker et traiter


les données volumineuses sur un cluster. Il est utilisé par un grand
nombre de contributeurs et utilisateurs. Il a une licence Apache 2.0.

 Apache Hadoop: hadoop.apache.org

Big Data 24

12
24/10/2022

Hadoop : Origine

Doug Cutting : The Name of Hadoop

Big Data 25

Hadoop : utilisation

Big Data

13
24/10/2022

Hadoop

• Le projet Hadoop consiste en deux grandes parties:


• Stockage des données : HDFS (Hadoop Distributed File System)
• Traitement des données : MapReduce / Yarn

 Principe :
 Diviser les données
 Les sauvegarder sur une collection de machines, appelées cluster
 Traiter les données directement là où elles sont stockées, plutôt que de les
copier à partir d’un serveur distribué

Big Data 27

Hadoop, HDFS et MapReduce

Big Data 28

14
24/10/2022

Ecosystème de Hadoop

Big Data 29

Ecosystème de Hadoop

 En plus des briques de base Yarn /


MapReduce / HDFS, plusieurs outils
existent pour permettre:
 L’ extraction et le stockage des données
de/sur HDFS

 La simplification des opérations de


traitement sur ces données

 La gestion et coordination de la
plateforme

 Le monitoring du cluster

Big Data 30

15
24/10/2022

Ecosystème de Hadoop

 Parmi ces outils, certains se trouvent au


dessus de la couche Yarn/MR, tel que:
 Pig: Langage de script

 Hive: Langage proche de SQL (Hive QL)

 R Connectors: permet l’accès à HDFS et


l’exécution de requêtes Map/Reduce à
partir du langage R

 Mahout: bibliothèque de machine


learning et mathématiques

 Oozie: permet d’ordonnancer les jobs


Map Reduce, en définissant des
workflows

Big Data 31

Ecosystème de Hadoop

 D’autres outils sont directement au


dessus de HDFS, tel que :
 Hbase : Base de données NoSQL
orientée colonnes

 Impala (pas représenté dans la figure):


Permet le requêtage de données
directement à partir de HDFS (ou de
Hbase) en utilisant des requêtes Hive
SQL

Big Data 32

16
24/10/2022

Ecosystème de Hadoop

 Certains outils permettent de connecter


HDFS aux sources externes, tel que:

 Sqoop: Lecture et écriture des données


à partir de bases de données externes

 Flume: Collecte de logs et stockage dans


HDFS

Big Data 33

Ecosystème de Hadoop

 Enfin, d’autres outils permettent la


gestion et administration de Hadoop, tel
que:

 Ambari: outil pour le provisionnement,


gestion et monitoring des clusters

 Zookeeper: fournit un service centralisé


pour maintenir les information de
configuration, de nommage et de
synchronisation distribuée

Big Data 34

17
24/10/2022

Ecosystème de Hadoop

Commandes Hadoop et HDFS

Créer un dossier dans HDFS :


Commande :
hadoop fs -mkdir

Exemple :
hadoop fs -mkdir /user/monDossier

hadoop fs -mkdir /user/monDossier1 /user/monDossier2 /user/monDossier3

L’option -p est nécessaire si le dossier parent n’existe pas lors de la création d’un sous répertoire.

Big Data 35

Ecosystème de Hadoop

Commandes Hadoop et HDFS

Lister le contenu d’un dossier:


Commande :
hadoop fs -ls

Exemple :
hadoop fs -ls /user

hadoop fs -ls /user/monDossier

Big Data 36

18
24/10/2022

Ecosystème de Hadoop

Commandes Hadoop et HDFS


Charger un ou plusieurs fichiers du local à HDFS:
Commande :
hadoop fs -put

Exemple :
hadoop fs -put /home/monFichier.txt /user/monDossier
Exporter un ou plusieurs fichiers de HDFS au local:
Commande:
hadoop fs -get
Exemple :
hadoop fs -get /user/monDossier/monFichier.txt /Desktop

Big Data 37

Ecosystème de Hadoop

Commandes Hadoop et HDFS

Copier un ou plusieurs fichiers dans HDFS:


Commande :
hadoop fs -cp
Exemple :
hadoop fs -cp /user/monDossier1/monFichier.txt /user/monDossier2
Déplacer un ou plusieurs fichiers dans HDFS:
Commande :
hadoop fs -mv
Exemple :
hadoop fs -mv /user/monDossier1/monFichier.txt /user/monDossier2

Big Data 38

19
24/10/2022

Ecosystème de Hadoop

Commandes Hadoop et HDFS


Charger un ou plusieurs fichiers du local à HDFS:
Cette commande est similaire à -put
Commande :
hadoop fs -copyFromLocal
Exemple :
hadoop fs -copyFromLocal /home/monFichier.txt /user/monDossier
Exporter un ou plusieurs fichiers de HDFS au local:
Commande:
hadoop fs -copyToLocal
Exemple :
hadoop fs -copyToLocal /user/monDossier/monFichier.txt /Desktop
Cette commande est similaire à -get

Big Data 39

Ecosystème de Hadoop

Commandes Hadoop et HDFS


Afficher le contenu d’un fichier:
Commande:
hadoop fs -cat <Path[Filename]>
Exemple :
hadoop fs -cat /user/monFichier.txt
Afficher les dernières lignes d’un fichier:
Commande :
hadoop fs -tail <Path[Filename]>
Exemple :
hadoop fs -tail /user/monFichier.txt

Big Data 40

20
24/10/2022

Ecosystème de Hadoop

Commandes Hadoop et HDFS


Supprimer un fichier dans HDFS:
Commande :
hadoop fs -rm
Exemple :
hadoop fs -rm /user/monFichier.txt
Suppression récursive dans HDFS:
Commande :
hadoop fs -rmr

Exemple :
hadoop fs -rmr /user/

Big Data 41

Ecosystème de Hadoop

Commandes Hadoop et HDFS


Créer un fichier vide
-touchz
Modification des permissions
-chmod
-chown
-chgrp
Statistique
-stat
Help
Commande:
hadoop fs -help
Exemple:
hadoop fs -help stat
42
:
Big Data

21
24/10/2022

HDFS
Map Reduce

Big Data

Ecosystème de Hadoop

 En plus des briques de base Yarn /


MapReduce / HDFS, plusieurs outils
existent pour permettre:
 L’ extraction et le stockage des données
de/sur HDFS

 La simplification des opérations de


traitement sur ces données

 La gestion et coordination de la
plateforme

 Le monitoring du cluster

Big Data 44

22
24/10/2022

Hadoop, HDFS et MapReduce

Big Data 45

hdfs: Hadoop Distributed File System

 Architecture
 HDFS est un système de fichiers distribué, extensible
et portable

 Ecrit en Java

 Permet de stocker de très gros volumes de données


sur un grand nombre de machines (nœuds) équipées
de disques durs : Cluster

 Quand un fichier mydata.txt est enregistré dans HDFS,


il est décomposé en grands blocs (par défaut 64Mo),
chaque bloc ayant un nom unique: blk_1,blk_2…

Big Data 46

23
24/10/2022

hdfs: Hadoop Distributed File System

 Architecture
 Chaque bloc est enregistré dans un nœud différent du
cluster

 DataNode : démon sur chaque nœud du cluster

 NameNode :
 Démon s’exécutant sur une machine séparée
 Contient des méta-données
 Permet de retrouver les nœuds qui exécutent les
blocs d’un fichier

Big Data 47

HDFS : Hadoop Distributed File System

 Si le NameNode a un problème :

X Pas de problème
 Données perdues à jamais
 Données inaccessibles?

 Si c’est un problème d’accès (réseau), les


données sont temporairement
inaccessibles

 Si le disque du NN est défaillant, les


données seront perdues à jamais

Big Data 48

24
24/10/2022

HDFS : Hadoop Distributed File System

 Pour éviter cela, le NameNode sera


dupliqué, non seulement sur son propre
disque, mais également quelque part sur le
système de fichiers du réseau

 Définition d’un autre NN (standby


namenode) pour reprendre le travail si le
NameNode actif est défaillant

Big Data 49

MapReduce

 Patron d’architecture de développement


permettant de traiter des données volumineuses
de manière parallèle et distribuée

 A la base, le langage Java est utilisé, mais grâce à


une caractéristique de Hadoop appelée Hadoop
Streaming, il est possible d’utiliser d’autres
langages comme Python ou Ruby

 Au lieu de parcourir le fichier séquentiellement


(bcp de temps), il est divisé en morceaux qui sont
parcourus en parallèle.

Big Data 50

25
24/10/2022

MapReduce

 Imaginons que vous ayez plusieurs magasins que vous


gérez à travers le monde

 Un très grand livre de comptes contenant TOUTES les


ventes

 Objectif : Calculer le total des ventes par magasin pour


l’année en cours

 Supposons que les lignes du livres aient la forme


suivante:
  Jour Ville produit Prix

Big Data 51

MapReduce

 Possibilité :
 Pour chaque entrée, saisir la ville et le prix
de vente

 Si on trouve une entrée avec une ville déjà


saisie, on les regroupe en faisant la somme
des ventes

 Dans un environnement de calcul


traditionnel, on utilise généralement des
Hashtables, sous forme de : Clef Valeur

 Dans notre cas, la clef serait l’adresse du


magasin, et la valeur le total des ventes.

Big Data 52

26
24/10/2022

MapReduce

 Problèmes :

 Le traitement séquentiel de toutes les


données peut s’avérer très long

 Plus on a de magasins, plus l’ajout des


valeurs à la table est long

 Il est possible de tomber à court de


mémoire pour enregistrer cette table
Mais cela peut marcher, et le résultat
sera correct .

Big Data 53

MapReduce

Mappers
 Pour chaque entrée, saisir la ville, et le total des ventes et
les enregistrer dans une fiche
 Rassembler les fiches du même magasin dans une même
pile
Reducers
 Chaque Reducer sera responsable d’un ensemble de
magasins
 Ils collectent les fiches qui leur sont associées des
différents Mappers
 Ils regroupent les petites piles d’une même ville en une
seule
 Ils parcourent ensuite chaque pile par ordre alphabétique
des villes (L.A avant Miami), et font la somme de
l’ensemble des enregistrements

Big Data 54

27
24/10/2022

MapReduce

 Le Reducer reçoit des données comme suit :


o  Miami 12.34
o  Miami 99.07
o  Miami 3.14
o  NYC 99.77
o  NYC 88.99

Big Data 55

MapReduce

 Les Mappers sont de petits programmes qui


commencent par traiter chacun une petite partie des
données

 Ils fonctionnent en parallèle

 Leurs sorties représentent les enregistrements


intermédiaires : sous forme d’un couple (clef,valeur)

 Une étape de Mélange (shuffling)et Tri (Sort)s’ensuit


 Mélange : Sélection des piles de fiches à partir
des Mappers
 Tri : Rangement des piles par ordre au niveau de
chaque Reducer

Big Data 56

28
24/10/2022

MapReduce

BigData 57

MapReduce

Lancer un Job MapReduce


Lancer un job entier sur Hadoop implique qu’on fera appel au mapper puis au reducer sur une entrée
volumineuse, et obtenir à la fin un résultat, directement sur HDFS. Pour faire cela, l’instruction à exécuter
est :
hadoop jar
/usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.6.0-mr1-
cdh5.13.0.jar
-file ./mapper.py -mapper mapper.py
-file ./reducer.py -reducer reducer.py
-input inputFile
-output outputFolder

BigData 58

29
24/10/2022

MapReduce

Lancer un Job MapReduce


Proposer un raccourcis de cette commande à l'aide de la commande suivante :
[cloudera@quickstart ~]$ sudo gedit ~/.bashrc
et taper le code suivant :
run_mapreduce() {
hadoop jar /usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-
2.6.0-mr1-cdh5.13.0.jar -file $1 -mapper $1 -file $2 -reducer $2 -input $3 -
output $4
}

alias hs=run_mapreduce
Tester maintenant avec :
hs mapper.py reducer.py myinput joboutput

BigData 59

MapReduce

Exercices :
1.Donnez la liste des ventes par catégorie de produits.
2.Quelle est la valeur des ventes pour la catégorie Toys ?
3.Et pour la catégorie Consumer Electronics ?
4.Donnez le montant de la vente le plus élevé pour chaque magasin
5.Quelle est cette valeur pour les magasins suivants : Reno ? Toledo ? Chandler ?
6.Quel est le nombre total des ventes et la valeur totale des ventes de tous magasins confondus ?
7.Quelle est la somme des ventes par jour de la semaine?
8.Quelle est la moyenne des ventes par jour de la semaine?

BigData 60

30

Vous aimerez peut-être aussi