Resume Big Data
Resume Big Data
Resume Big Data
Solution non big -data: un stockage “non-distribué” (un seul serveur pour stocker et
analyser les données) : (SGBRD) non-distribuées
Solution Big Data: un stockage “distribué” (plusieurs serveurs pour stocker et analyser les
données) :
● Bases relationnelles distribuées (MPP)
● Distributions Hadoop (stockage fichiers)
● Bases NewSQL pour le in-memory
● Bases NoSQL (Not Only SQL): clé/valeur
● Bases NoSQL: orientées colonnes
● Bases NoSQL: orientées documents
● Bases NoSQL: orientées graphes
Solutions de stockage de DATA :
● Key-value : redis - riak
● Graph database : Neo4j - Hyper Graph DB
● Document-oriented : MongoDb - CouchDB relax
● Column family: Cassandra - Hbase
Utilité des ETL en des ELT en Big Data
● Il s'agit d'une technologie informatique permettant d’effectuer des synchronisations
(Extraction Transformation Chargement : ETL) d’une source de données vers une
autre (entrepôts de données)
● Pour la récupération des données plusieurs outils présents ETL ou ELT
● Les ETL peuvent générer du code qui sera traité par la plateforme Big Data, afin
d’exploiter la puissance de cette dernière.
● Syncsort ou Hurence sont des environnements distribués : 2 solutions ETL
● Récupération des données :Kafka ou Flink
● L’analytics en temps réel : Spark et Storm.
Solutions d’analyse de données :
● Les outils d’analyse permettant l’interaction avec le Big Data : SAS, R et SPSS
● Les outils facilitant la phase de préparation de données : Dataiku.
Visualisation de DATA
Différents outils pour:
● Reporting de masse: Business Object ou OBIEE.
● Mise en place des tableaux de bords : Qlikview et MicroStrategy.
● consultation et analyse :Tableau Software ou TIBCO Spotfire
● la visualisation : Des librairies Javascript
BIG DATA: (ACM Association for Computing Machinery 1997)
Big data ou mégadonnées : l'ensemble des données numériques produites par l'utilisation
des nouvelles technologies à des fins personnelles ou professionnelles.
Gartner décrivait les 4 V:
● Volume : Data Size
● Variété : Different forms of Data sources
● Vélocité:Speed of change
● Véracité : uncertainty of data
● Valeur
Qu’est ce qu’il offre(solutions)?
● Stockage + Sécurisé les grande quantité de data
● Tolérance de panne
● Haute disponibilité
● Traitement et analyse des données d’une manière distribuée en vue d’extraire la
connaissance (la valeur)
● Traitement en Streaming
Batch processing (min / hours): Traitement de données déjà stockées sur une période
donnée.
➔ Caractéristiques
- Données en entrée : fichiers, résultat d’une requête (HDFS, Sqoop,...).
- Résultats : les résultats ne seront disponibles qu’à la fin des traitements.
- Latence : souvent de l’ordre de la minute ou de l’heure.
Exemple d’implémentation : MapReduce, Flink, Tez, Spark
➔ Fonctionnement
1. Les données sont sélectionnées par un traitement principal et souvent
unique.
2. Les données sont distribuées entre les nœuds afin d’être traitées.
3. Un traitement réalise les opérations globales: tri + agrégation,
Batch Incrémental: Le traitement des nouvelles données sans faire le retraitement de
l’ensemble des données déjà traité.
Stream processing (seconds): Permet le traitement en temps réel => obtenir des résultats
d’analyse instantanée.
1. Micro-Batch: Les enregistrements mis en lot et traite en un seul mini-lot => le
résultat est produit toutes les n secondes —> Spark Streaming, Storm-Trident
2. Native Streaming (real time): Chaque entrée est traitée immédiatement sans
attendre les autres et produit un résultat —> Storm - Flink- Kafka streams- apache
samza
Écosystème Big data
Stream Processing:
● Apache storm: Framework de calcul et de traitement distribué de flux de données.
● Apache flink: Framework de calcul et de traitement distribué de flux distribué.
● Apache spark: Framework de traitement distribué de flux de données Big Data
(Alternative de MapReduce).
● Apache Kafka Streams: Plateforme de streaming de données en temps réel entre les
applications distribuées et système de messagerie applicative.
SGBD Nosql:
● Apache Hbase: SGBD NoSQL distribué
● MongoDb - Cassandra: SGBD NoSQL, le stockage d’une manière distribuée dans
des nœuds sous forme de documents au format json.
● ElasticSearch: Moteur de recherche distribué en multi-entités à travers une interface
REST.
Hazelcast: Cache mémoire distribué,SGBD NoSQL en mémoire, Système de messagerie
applicative.
Architecture:
Fonctionnement
1. Diviser les données
2. Les sauvegarder sur une collection de machines: cluster
3. Traiter les données directement là où elles sont stockées
LIMITATIONS de HADOOP
Solutions:
● Une seule lecture des données puis traitement en mémoire.
● Remplacer les disques par les SSD.
-Qlq Clients de l’architecture HADOOP: the Yahoo ,Google ,Facebook, IBM ,twitter,Amazon.
Part 2: HDFS
Définition:
HDFS est un système de fichiers distribué, extensible et portable, écrit en Java, basé sur
une topologie maître esclave.
● Possibilité de stocker des péta-octets de données.
● Pas sécurisé par défaut, un utilisateur peut accéder au système sans authentification
● Permet des traitements parallèles et distribués
● Tolérances aux erreurs avec la réplication de données
Architecture:
● Hadoop est composé d’un certain nombre de nœuds(machine physique ou virtuelle) ,
● Name Node : maître qui va gérer la distribution de données sur l’ensemble de Data
Node + savoir l’emplacement de chaque partie de fichier source
Cluster = Name Node (Master) + Data Nodes (Esclaves)
● Chaque fichier enregistré dans HDFS est décomposé en grands blocs (64 Mo ou
128 Mo), chaque bloc ayant un nom unique et enregistrer 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étadonnées + Permet de retrouver les nœuds qui exécutent les blocs d’un fichier.
Perte de donnée: Solution
1. Hadoop réplique le bloc 3 fois (par défaut) sur 3 nœuds au hasard
2. place une copie du bloc dans chacun d’eux
3. Si un nœud tombe en panne, le Namenode le détecte, et s’occupe de répliquer
encore les blocs qui y étaient hébergés pour avoir toujours 3 copies stockées
NameNode tombe en panne:
● 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
Solution
● Duplication de le NameNode sera dupliqué sur son propre disque + le système de
fichiers du réseau.
Caractéristiques
● nœud = CPU + disques
● Les nœuds peuvent être combinés en graphes
● Évolutif : ajouter des nouveaux noeud sans changer: Formats de données +
Comment les données sont chargées + Comment les emplois sont écrits
● Abordable :Calcul massivement parallèle sur des serveurs de grande consommation
● Flexible : Hadoop est sans schéma et peut absorber n'importe quel type de données
● Tolérance de panne :Grâce au cadre logiciel MapReduce
Les cas non adéquats 33 !!!!!!!!
Fonctionnement /Algorithme
➔ Ecriture
Le client consulte le NameNode
Pour bloc allant de 1 à N
Le client écrit le bloc de données directement dans DataNode
Le DataNode réplique le bloc
next bloc
➔ Lecture
Le client récupère de NameNode la liste des DataNodes pour chaque bloc
Pour bloc allant de 1 à N
chercher le premier DataNode qui contient le bloc dans la liste des DataNode
lire le bloc next bloc
Plateformes Hadoop/HDFS
Cloudera - MapR Technologie - Hortonworks
Cours 3: Hadoop Map Reduce
version1 :
Map/Reduce = API + Framework + Resource Management
API : permet l’écriture d’applications MapReduce
Framework : Services permettant l’exécution des: Jobs MapReduce, Shuffle/Sort...
Resource Management :Infrastructure pour gérer les nœuds du cluster, allouer des
ressources et ordonnancer les jobs
Démons
● JobTracker : Divise le travail sur les Mappers et Reducers sur les nœuds, se charge à la
fois d’allouer les ressources (mémoire, CPU...) aux différentes tâches + coordonner
l’exécution des jobs Map-Reduce
● TaskTracker: S’exécute sur chacun des nœuds pour exécuter les vraies tâches de
MapReduce.
Limitation
● Le Job Tracker gère ressources du cluster et les jobs : Allouer les tâches et les
ordonnancer Monitorer l’exécution des tâches
● le Job Tracker tombe en panne => redémarrage de tous les jobs
● Le Job Tracker est fortement intégré à Map Reduce : impossible d’exécuter des App
non MR sur HDFS
Solution : YARN : Yet-Another-Resource-Negotiator (MR v2.0)
Il résoudre le problème de :
● La scalabilité : ~4000 noeuds
● L’allocation des ressources
Il offre:
● séparation de la gestion des ressources de celle des tâches MR
● les nœuds ont des ressources (CPU, mémoire..) allouées aux applications à la
demande
Les nouveaux démons:
● Resource Manager = le JobTracker + ne gère que les ressources du cluster
● Application Master (déployée sur les esclaves) : gérer les tâches
Avantage
Support les applications MR et non-MR
SPLITS
● Les fichiers dans MapReduce sont sauvés en Blocs
● MapReduce divise les données en fragments ou splits.
● 1 map task est exécuté sur chaque split.
● "split points" définit le caractère de fin de ligne qui détermine un enregistrement
(Record) de fichiers
● "InputSplitter" classe qui importe les fichiers et les transforme en splits
● L'objectif est de traiter autant de données que possible localement.
Classes (SPLITS)
- Effectue un split logique des fichiers - Divise le fichier en Splits - Lit les Splits en format de
d'entrée pour le Job. pour les jobs Records
- Chaque InputSplit est ensuite - Obtient la taille du split, - (LineRecordReader)
assigné à un Mappeur individuel - Obtient la liste des nœuds Appelé une fois à
pour traitement. (par nom) où les données l'initialisation,
- Créer un record reader pour un split seraient locales. - Lit la clé suivante, paire de
de donnée, valeurs,
- transforme le records en <key, - Obtenir la clé actuelle
value>. - Obtenir la valeur actuelle
- Progression du record reader
vers le nouveau record,
Ordonnancement (Scheduling)
Chaque job utilise le cluster entier, les jobs attendent donc leur tour dans une file d’attente.
Tolérance aux fautes
La communication se fait à partir de Task Tracker via le Heartbeat pour informer le
JobTracker qui réaffecter la tâche à un autre nœud
Combiner
Pour assurer la performance un agrégat local se situe dans la Map Task qui va réduire la
quantité de données à copier sur le réseau => Réduire l'effort de fusion Après la tâche de
mappage et avant le shuffle