Big Data
Sommaire:
Introduction au Big Data
Solutions et Architectures Big Data
Framework Hadoop
Framework Spark
Intro au Big Data
Explication du terme:
Désignent in ensemble de données très volumineux qu’aucun outil classique de
gestion de BD ne peu traiter.
Les grans acteurs (google, FB, Yahoo, Amazon…) ont developpe des nouveaux
outils pour stocker et explorer ces données:
les BD NoSQL
les frameworks Hadoop et le modele MapReduce
le framework Spark
Les 3V:
Volume:
90% des données récoltées depuis le debut de l’humanite ont été
générées durant les dernières années
ce volume a augmente car el prix de stockage a bcp diminué et els
solutions de stockage fiables sont nombreuses
Variété:
la plupart des données sont non-structurées (Textuelles(courrier, doc
word…) ou non textuelles(images, videos , audios,…)) ou semi structurées
(JSON, XML, …)
Auparavant les données étaient formatées et structurées.
Big Data 1
Vitesse:
La rapidité d’arrivée des données implique une vitesse de stockage ET
une vitesse de traitement
Avant les entreprises traitait leurs données en plusieurs jours, mais avec
les technologies big data maintenant le traitement se fait en qlqs
heures/minutes.
les 5V:
Véracité:
les données doivent être fiables, pertinentes et significatives pour donner
suffisamment de sens et d’interet économique aux analyses menées
the “truth” or accuracy of data and information assets
Valeur:
les 7V:
Visualisation:
les données sont collecter, stocker, traiter puis analyser et on doit les
visualiser pour les bien comprendre.
Variabilité:
Différente de la variété
Solutions et Architectures Big Data
Evolution des solutions Big Data
Cette évolution a touché les catégories suivantes:
Traitement:
Hadoop a posé les bases de la Big Data (en termes de traitement)
La plateforme est capable de traiter des volumes important de
données, mais avec une latence importante(t9iiil)
on voulait donc conserver les points forts de Hadoop tout en
augmentant les possibilités d’interactions grace a des traitements
temps réels.
Exemples de solution temps réel:
Spark (streaming)
Big Data 2
storm
Flink
Druid
Tez
Stockage:
Emergence des solution NoSQL:
Hbase
Cassandra
MongoDB
CouchDB
Redis
Neo4j
Interrogations:
Le pseudo SQL s’impose comme standard dans l'interrogation des
données stockées dans la Big Data
c’est le cas de ces solutions:
Hive
Drill
Pig
Spark SQL
Apache Hadoop is an open source software framework for reliable, scalable, and
distributed computing of massive amount of data.
Hides the underlying system details and complexities from the user.
Developed in Java.
HDFS, Hive, and HBase are three distinct components of the Apache Hadoop
ecosystem, used for storing, managing, and analyzing large-scale data sets.
1. HDFS (Hadoop Distributed File System):
HDFS is a distributed file system designed to store very large data sets across
multiple machines. HDFS is used as a primary data storage system in Hadoop,
Big Data 3
and is often used in combination with other Hadoop components such as
MapReduce and YARN.
2. Hive:
Hive is a data warehousing tool that provides a SQL-like interface to query data
stored in Hadoop. Hive allows users to write SQL queries that are translated into
MapReduce jobs, making it easier for analysts to analyze large data sets without
having to write MapReduce code.
3. HBase:
HBase is a NoSQL database that runs on top of Hadoop and provides random
access to large amounts of structured and semi-structured data. HBase is often
used for real-time processing, time-series data, and as a back-end for web and
mobile applications.
Catégories des solutions Big Data
Stockage des données: HDFS , BD NoSQL( Hbase, Cassandra, MongoDB,
…)
Ingestion/Extraction de données: HDFS, Talend, Sqoop, Kafka
Traitement des données: Hive, Impala, Cloudera
Sécurité: Apache Sentry
Interaction er Visualisation (Notebook): Jupyter…
Architecture Big Data
Principes d’une Architecture Big Data
voir a partir de la page 14:
[Link]
Big Data 4
Les types de traitements dans le Big Data:
Traitement par lots (Batch Processing):
Le traitement par lots consiste à traiter une grande quantité de données en
une seule fois, généralement en les regroupant en lots. Les données sont
stockées dans un système de fichiers distribué tel que HDFS, puis traitées à
l'aide d'un outil de traitement distribué tel que Apache Spark, Apache
Hadoop MapReduce ou Apache Flink.
Data comes in and gets stored, analytics loads the data from storage and
creates an output (insight):
It is used to ask the big questions and gain the insights by looking at the big
picture.
To do so, batch processing jobs use large amounts of data. This data is
provided by storage systems like Hadoop HDFS.
They can store lots of data (petabytes) without a problem.
Results from batch jobs are very useful, but the execution time is high.
Because the amount of used data is high. It can take minutes or sometimes
hours until you get your results.
Traitement en temps réel (Stream Processing):
Big Data 5
Le traitement en temps réel consiste à traiter les données en temps réel au fur
et à mesure de leur arrivée. Les données sont collectées à partir de sources
en continu telles que des capteurs IoT, des données de réseaux sociaux ou
des transactions financières, puis traitées en temps réel à l'aide d'un moteur
de traitement de flux tel que Apache Kafka, Apache Flink ou Apache Spark
Streaming.
Streaming allows users to make quick decisions and take actions based on
“real-time” insight. Contrary to batch processing, streaming processes data
on they, as it comes in.
With streaming you don't have to wait minutes or hours to get results. You
gain instant insight into your data.
In the batch processing pipeline, the analytics was after the data storage. It
had access to all the available data. Stream processing creates insight
before the data storage. It has only access to fragments of data as it comes
in. As a result the scope of the produced insight is also limited. Because the
big picture is missing.
Architectures:
A voir
Lambda
Kappa
SMACK
Apache Hadoop
Le framework Apache Hadoop:
Short for High-availability distributed object-oriented platform
open source
written in java
il fournit un système de stockage distribué via son système de fichier HDFS,
avec la possibilité de stocker la donnée en la dupliquant
il fournit un système d’analyse des gros volumes de données : MapReduce
Big Data 6
Utilisateurs de Hadoop:
Facebook
Twitter
The New York Times
Adobe
Google
IBM
Yahoo
etc..
Ecosystème de Hadoop:
Big Data 7
Traitement distribué dans Hadoop
Big Data 8
HDFS:
HDFS stocke les données sur plusieurs nœuds. Donc si le système tombe
en panne, il assure la fiabilité en répliquant les données sur plusieurs
nœuds.
HDFS est distribué: Les données sont réparties sur tout le cluster de
machines
HDFS est répliqué: si une des machine du cluster tombe en panne aucune
donné n’est perdues.
Mécanisme de replication dans HDFS:
HDFS supporte de très gros fichiers. Chaque fichiers est divise en blocs:
Par défaut la taille d’un bloc est 64MB (configurable)
Les Blocs se trouvent sur les differents DataNode Physiques
On peut créer , copier, supprimer mais pas mettre a jour les blocs.
Architecture HDFS:
C’est une architecture Maitre/Esclave
Big Data 9
Note: Le NameNode manipule deux importants fichiers que
sont: fsimage et edit logs.
fsimage: est une capture de l'état de HDFS au démarrage du NameNode
edit logs: contient toutes les modifications faites à HFDS jusqu'au
prochain démarrage où les deux fusionnent pour donner la nouvelle
version de fsimage.
Big Data 10
See examples here: p.:22
[Link]
Commandes hadoop fs:
cd /opt/ibm/biginsights/bin #just in the case of the IBM VM.
./[Link] hadoop
./[Link] console
./[Link] hbase
hadoop fs -ls /chemin/du/dossier #Pour explorer le contenu d'
hadoop fs -mkdir /mondossier #Pour créer un dossier nommé "mo
• Pour copier un fichier de la machine client vers le cluster HDFS, l'une de ces
deux commandes peut être utiisée :
hadoop fs -copyFromLocal /chemin/vers/fichier/local /localis
hadoop fs -put /chemin/vers/fichier/local /localisation/sur/
• L'opération inverse consistant à copier un fichier HDFS sur notre client est
faite comme suit :
hadoop fs -copyToLocal /chemin/vers/fichier/HDFS /localisati
hadoop fs -get /chemin/vers/fichier/HDFS /localisation/en/lo
• Pour supprimer un dossier non vide :
$ hadoop fs -rm -r /dossier/non/vide
• Pour afficher le contenu d’un fichier :
hadoop fs -cat path/to/file
hadoop fs -cat [Link] | head -n 5 #afficher les 5 premieres
•Difference entre mv et cp :
mv déplace des fichiers ou des dossiers d'un emplacement à un autre
et supprime le de son emplacement d'origine. lorsqu'on utilise la
Big Data 11
commande "hadoop fs -mv", elle agit à la fois sur les métadonnées
(metadata) et sur les données réelles (both of them move)
cp copie des fichiers ou des dossiers d'un emplacement à un autre et
garde le dans son emplacement d'origine. elle agit uniquement sur les
données réelles des fichiers/dossiers et non sur les métadonnées.
hadoop fs -mv path/depart path/arrivee
hadoop fs -cp path/depart path/arrivee
MapReduce
MapReduce est le modèle de programmation du framework Hadoop. Il
permet d'analyser les immenses volumes de données Big Data grâce au
traitement parallèle.
Le modèle de programmation MapReduce est l’un des principaux
composants du framework Hadoop. Il est utilisé pour accéder aux
données Big Data stockées au sein du Hadoop File System (HDFS).
Hadoop est capable d’exécuter des programmes MapReduce écrits
dans divers langages : Java, Ruby, Python, C++…
Fonctionnement de MapReduce:
Big Data 12
Exemple 1:
[Link]
Exemple 2:
Big Data 13
Exemple 3:
exemple bien fait :
[Link]
page 44
Architecture de Hadoop MapReduce:
Comme pour HDFS, la gestion des tâches de Hadoop se base sur une
architecture maître/esclave :
Le JobTracker (le maître) : Il y a un seul JobTracker sur une seule machine
dans le cluster Hadoop.
Le TaskTracker (l’esclave) : Il y a un TaskTracker sur chaque machine du
cluster.
Principe de fonctionnement du JobTracker:
1. Le client hadoop va soumettre le travail à effectuer au JobTracker : une
archive java .jar qui correspond à la compilation des programmes MAP et
REDUCE, ainsi que les données d’entrées (nom des fichiers stockés
surHDFS) et le répertoire où stocker les données de sortie (toujours sur
HDFS).
Exemple de commande pour soumettre le .jar au jobtracker :
Big Data 14
hadoop jar [Link] [Link]
/[Link]/results
2. Le JobTracker communique avec le NameNode HDFS pour savoir où se
trouvent les blocs correspondant aux noms de fichiers donnés par le client.
3. Le JobTracker, à partir de ces informations, détermine quels sont les
nœuds TaskTracker les plus appropriés (c-à-d ceux qui contiennent les
données ou les noeuds les plus proches).
4. Pour chaque morceau des données d’entrée, le JobTracker envoie au
TaskTracker sélectionné le travail à effectuer (MAP/REDUCE, code Java) et
les blocs de données correspondant.
5. Le JobTracker communique avec les noeuds TaskTracker en train
d’exécuter les tâches. Ils envoient régulièrement un "heartbeat", un
message signalant qu’ils travaillent toujours sur la sous-tâche reçue.
Si aucun heartbeat n’est reçu dans une période donnée, le
JobTracker considère la tâche comme ayant échouée et donne le
même travail à effectuer à un autre TaskTracker.
6. Si par hasard une tâche échoue, le TaskTracker va signaler au
JobTracker que la tâche n’a pas pû être exécuté. Le JobTracker va alors
décider de la conduite à adopter :
Redonner la sous-tâche à un autre TaskTracker
Demander au même TaskTracker de ré-essayer
Marquer les données concernées comme invalides, etc.
7. Une fois que toutes les opérations envoyées aux TaskTracker (MAP et
REDUCE) ont été effectuées et confirmées comme effectuées par tous les
noeuds, le JobTracker marque la tâche comme “effectuée”.
Remarque : On peut également obtenir à tout moment de la part du
JobTracker des informations sur les tâches en train d'être effectuées:
étape actuelle (MAP, SHUFFLE, REDUCE), pourcentage de complétion, etc
Principe de fonctionnement du TaskTracker:
Le TaskTracker dispose d’un nombre de “slots“ d’exécution. A chaque
”slot” correspond une tâche exécutable.
Le TaskTracker est en communication constante avec le JobTracker
et va recevoir les opérations simples à effectuer (MAP/REDUCE)
ainsi que les blocs de données correspondants (stockés sur HDFS).
Big Data 15
Une fois la tâche démarrée, il enverra régulièrement au JobTracker
ses messages "heartbeats” .
En dehors d’informer le JobTracker qu’il est toujours fonctionnels,
ces messages indiquent également le nombre de slots disponibles
sur le TaskTracker concerné.
Architecture Générale:
NoSQL
Big Data 16