Resume Big Data

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 9

Big Data

Cours 1 Architecture Big Data Fondements de BIG DATA

Changements de la BI traditionnelle au BIG Data :


● Changement de nature des données
● Changement de volumétrie
● Changement de référentiels de données, du Data Warehouse au Data Lake
● Changement de processus de production
● Changement d’architecture
● Changement de compétences

Gartner Inc. est une entreprise américaine de conseil et de recherche dans


le domaine des techniques avancées dont le siège social est situé à
Stamford au Connecticut.

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

Écosystème Hadoop : Framework (java) open source permettant le stockage et le traitement


des données massifs d’une manière parallèle et distribuée
Hadoop = HDFS (Stockage) + Mapreduce (Traitement)
Hadoop permet :
● Haute disponibilité
● Scalabilité
● Tolérance aux pannes
● Reprise après l'échec
● Sécurité
Pour Hadoop 1.0 => HDFS + Mapreduce
Pour Hadoop 2.0 => HDFS + Mapreduce + YARN

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.

Apache Zookeeper: Configuration des systèmes distribués pour assurer la coordination


entre les nœuds.

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.

Apache Pig : Plateforme de haut niveau de création d’applications Map Reduce(Langage


Pig Latin qui ressemble à SQL) au lieu du code Java.
Apache Hive : Infrastructure d'entrepôt de données pour l’analyse et le requêtage avec un
langage proche de SQL.
Apache Phoenix : Moteur de base de données relationnel qui repose sur Hbase.
Apache Impala : Moteur de requêtes SQL de cloud pour un système basé sur HDFS &
Hbase.
Apache Flume : Système de collecte et d’analyse des fichiers logs.
Apache Sqoop : Outils sur ligne de commandes pour transférer les données entre les
SGBD relationnels et hadoop.
Apache Oozie : outil d’ordonnancement des flux de Hadoop.
Cours 2: Architecture Big Data Hadoop HDFS
Part 1: Hadoop
Les enjeux l'écosystème HAdoop

Big data Grand volume de données

Différents sources de Science, industrie, Système


données

Stockage Stockage et Analyse de données

Distribué fonctionne sur plusieurs machines

Scalable possibilité d’augmenter le nombre des machines

tolérance en panne une machine tombe en panne => pas de problème

Commodity hardware Utilisation des machines ordinaires en nombre important

Réplication de données protège la perte de données

Architecture:

➔ Des outils qui se trouvent au dessus de la couche Yarn/MR:


- Pig: Langage de script
- Hive: Langage proche de SQL
- 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
➔ Des outils sont directement au dessus de HDFS:
-Hbase : Base de données NoSQL orientée colonnes
-Impala: le requêtage de données directement à partir de HDFS (ou de Hbase) en
utilisant des requêtes Hive SQL
➔ Des outils permettent de connecter HDFS aux sources externes:
- Sqoop: Lecture et écriture des données à partir de bases de données externes
- Flume: Collecte de logs et le stockage
➔ Des outils qui permettent la gestion et l’administration de Hadoop:
- Ambari: outil pour le provisionnement, gestion et monitoring des clusters
- Zookeeper: fournit un service centralisé pour maintenir les informations de
configuration, de nommage et de synchronisation distribuée

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

● Nombreux accès à HDFS → traitements très longs.


● Inefficace pour les algorithmes itératifs et datamining interactif.

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)

InputFormat InputSplitter RecordReader

- 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

- L’architecture Mapreduce permet le traitement parallèle et distribuée de données


- Hadoop Streaming permet l’utilisation de langage python
- Les fichiers sont divisés en morceaux qui sont parcourus en parallèle.
Fonctionnement
1. Découper les données d'entrée en plusieurs fragments = >split
2. Mapper : un petit programme qui traite une petite partie des données
résultat = couples <key, value>
3. Grouper (shuffle) ces couples par clé.
4. Réduire les groupes indexés par clé en une forme finale, avec une valeur pour
chacune des clés distinctes.
Exemple: WordCount

Vous aimerez peut-être aussi