Big Data
Big Data
*************
AFRICAN INSTITUTE OF COMPUTER SCIENCE
République du Cameroun
Centre d’Excellence Technologique PAUL BIYA
BP : 113719 Yaoundé, Cameroun
Tel: +237 242 729 957
Site web: www.iaicameroun.com
E-mail : [email protected]
THEME :
Présentation du Framework
HADOOP
Membres du Groupe :
➢ ADJEMLO NDJOL Wilfried Dayane
➢ AMOUYE BIANDJE Gabriel Ryan
SOMMAIRE
SOMMAIRE ........................................................................................................................................... 1
INTRODUCTION .................................................................................................................................. 2
CONCLUSION ..................................................................................................................................... 27
Page | 1
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
INTRODUCTION
Le Big Data est un ensemble de données massives et complexes qui sont difficiles à gérer,
traiter, et analyser à l’aide des méthodes traditionnelles. Ces données se produisent de nos jours
à une vitesse exponentielle et deviennent difficile à traiter, c’est dans ce cadre que Hadoop (de
la fondation Apache) s’est imposé comme un Framework open source incontournable.
Aujourd’hui, Hadoop est la principale plateforme du Big Data, il est utilisé pour le stockage et
le traitement d’immense volume de données. Hadoop et ses composants sont utilisés par de
nombreuses entreprises pour leur projet Big Data. Dans la suite de notre devoir nous allons
présenter les origines d’Hadoop, ses principaux composant de base en présentant MapReduce,
HDFS et YARN et enfin nous allons présenter quelques composants optionnels d’Hadoop.
Page | 2
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
I- HISTORIQUE D’HADOOP
Hadoop est aujourd’hui une plateforme indispensable dans le domaine du Big Data. On
peut bien se poser la question de comment on a fait pour en arriver là ?
Pour répondre à cette question il est nécessaire de savoir qu’en 1997 Doug CUTTING
informaticien Américain a commencé à développer une librairie en Java permettant
d’effectuer des recherches dans du texte et d’indexer des mots clés, il s’agit du projet
Lucene. Ce projet intègre la fondation Apache au début des années 2000.
Puis avec l’aide de Mike CAFARELLA, Ils développent le projet Nutch permettant cette fois
d’indexer les pages web à l’aide de la librairie Lucene. Malgré l’ajout des serveurs, Nutch
n’était pas à mesure de répondre à l’explosion du nombre de page web. Le besoin d’avoir un
système capable de supporter les pannes de serveurs sans incidence sur la recherche et
l’indexation, de distribuer les traitements dynamiquement sur d’autre serveurs, de supporter la
perte de données d’un disque dur ; Au même moment en 2003 Google publie les résultats de
ses recherches sur la gestion de système de fichier distribué (GFS : Google file System) pour
leur propre besoin.
Page | 3
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
A partir d’un autre document de recherche édité par Google sur le traitement de donnée sur des
clusters de serveurs (MapReduce), les deux informaticiens transforment NDFS en HDFS pour
Hadoop Distributed File System. Pour la petite histoire, Hadoop était le nom de la peluche du
fils de CUTTING.
Page | 4
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
En 2013 la version Hadoop 2.0 est livrée, la principale différence concerne la mise en
place du composant YARN qui prend en charge la gestion des ressources du cluster. Cela
permet ainsi au composant MapReduce de conserver uniquement sa valeur principale à savoir
la gestion des traitements sur les données du cluster mais aussi cela ouvre les perspectives
d’autre moteur de traitement.
La version Hadoop 3.0 livrée en 2018 apporte des modifications substantielles mais sans
révolution au niveau de l’architecture des composants.
Dans la section suivante nous allons présenter chaque composant de base du framework
Hadoop.
Page | 5
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
Lors de l’envoie d’un fichier sur HDFS celui-ci est découpé en bloc et dupliqué selon un
facteur de réplication de 3 (par défaut). Un bloc fait par défaut 128 Mo de donnée quel que
soit la taille du fichier. Si on envoie par exemple un fichier de 10 Mo il occupera donc par
défaut 128 x 3 Mo soit 384 Mo sur votre cluster. Il est donc essentiel de rappeler que HDFS a
été créé pour gérer des fichiers très important en termes de volume, d’où le découpage qui est
beaucoup plus important par rapport au système de fichier Windows, linux ou Mac. Il existe
donc 3 occurrences de fichier par défaut, leur emplacement est géré par le serveur maître du
cluster HDFS : Le NameNode. Sa fonction est de gérer l’emplacement de tous les fichiers,
de tous les blocs, de toutes les réplications de bloc au niveau de la globalité du cluster, il
gère les métadonnées du cluster. Le NameNode est donc le cerveau du HDFS, il est unique
et donc très sensible. Plusieurs mécanisme existe pour assurer sa résilience comme par
exemple sauvegarder des métadonnées régulièrement, ajouter un second NameNode ou mettre
en place une fédération HDFS. Les données sous formes de bloc de 128 Mo sont stockées sur
des DataNodes, ils correspondent au système de stockage des serveurs, des disques durs ou
des systèmes SSD. HDFS a donc conscience de l’emplacement exacte des fichiers et de leur
découpage en bloc sur chaque serveur : ceci constitue un avantage indéniable pour l’exécution
de MapReduce.
Page | 6
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
Dans le cadre de la phase du Map, les données initiales sont scindées en plusieurs lots,
chaque lot de donnée est affecté à un serveur et le traitement est appliqué.
Cependant au cours de la Reduce, on agrège les résultats des traitements de chaque
serveur.
Page | 7
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
Dans la 1ère étape le Map va se charger de scinder les données en plusieurs lots et chaque lot
est affecté à un serveur et le traitement sera appliqué comme illustré sur les figure ci-dessous :
Les données traitées sont stockées sous forme clé/valeur comme illustré sur la figure ci-
dessous :
Page | 8
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
Reduce vient maintenant agréger les résultats des traitements de chaque serveur et
produire un résultat global comme illustré sur l’image ci-dessous :
Page | 9
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
Les Modifications de base à l’architecture de Hadoop concernant avant tout les deux
trackets du MapReduce-Engine, qui n’existent plus en tant que composant unique dans la
version 2 de Hadoop. A la place, le module YARN possède trois nouvelles entités : le
ResourceManager, le NodeManager et l’Application Master.
YARN est donc un gestionnaire de ressources utilisé dans le framework Hadoop pour la
gestion des ressources de calcul sur un cluster de machines. Il est conçu pour permettre
l’exécution de diverses applications de traitement de données, y compris MapReduce.
Page | 10
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
Page | 11
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
On peut donc prendre l’exemple des applications comme MapReduce, Spark ou TEZ :
L’écosystème Hadoop a longtemps évolué depuis sa première version 0.1 en 2006, sa dernière
version est la 3.3 de 2020. Au cœur d’Hadoop les 3 composants Principaux sont HDFS,
MapReduce, Yarn. De très nombreux autres projets sont associés à Hadoop et gérés aussi au
travers de la fondation Apache. Il existe d’autres produits non gérés par Apache mais qui sont
généralement utilisés au travers de la plateforme Hadoop, ils peuvent donc être associés au
projet Apache considérant qu’ils font partis de l’écosystème Hadoop. Les quatres types d’outils
gravitant autour du cœur d’Hadoop sont :
Page | 12
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
Page | 13
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
b- MySQL
MySQL est une base de données relationnelle indépendante d’Hadoop, crée par Michael
WIDENIEUS, elle est très présente dans la gestion des sites web via la plateforme technique
LAMP. Sa version actuelle est la version 8. Dans cette version Mysql enrichit sa fonction
Document Store. Elle sert à ajouter des fonctionnalité NoSQL à MySQL. Ainsi les
développeurs peuvent mélanger et associer des données relationnelles et des documents JSON
dans la même base de données et dans la même application. Par exemple les deux modèles de
donnée peuvent être interrogés dans la même application et les résultats peuvent être
formatable, tabulaire ou JSON
Page | 14
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
c- SQOOP
SQOOP est un composant logiciel qui structure l’import et l’export d’importantes quantités
de données du Big Data du Framework Hadoop.
En règle générale les données sont stockées dans les bases de données relationnelles par les
entreprises de nos jours. Sqoop permet un échange efficace entre les systèmes de stockages et
les clusters d’ordinateurs
Page | 15
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
d- Cassandra
Cassandra est une base de données non relationnelle spécifiquement conçu pour gérer de
grand volume de données en assurant une haute disponibilité
e- MongoDB
MongoDB est une base de données dont le stockage est orienté document
f- HBASE
HBASE Est une base de données non relationnelle et distribué stockant les données en
colonne et non en ligne. Elle permet en temps réel d’exécuter les accès en lecture et en écriture
de grandes quantités de données au sein d’un cluster d’ordinateurs. HBase se base sur BigTable
de Google, un système très performant de bases de données. Comparé à d’autres bases de
données NoSQL, HBase se démarque par une cohérence des données hors norme
JAVA. Pour l’écriture de programme d’analyse de donnée, PIG fournit un langage de haut
niveau (le PIG Latin). Ce langage est une de SQL, facile à apprendre pour ceux qui sont déjà
familier avec le SQL. Néanmoins quelques différences existent, Pig est un langage procédural,
pas besoin de schéma de base pour manipuler les données en PIG Latin, il y a peu de possibilité
pour optimiser le code PIG Latin pour le rendre plus performant.
Au niveau architecture, le script PIG Latin est exécuté par le serveur Pig après les phases de
Parsing, d’optimisation et de compilation le traitement est envoyé au moteur. Par défaut il va
être transformé en un process MapReduce mais il peut aussi s’exécuter sur le moteur SPARK
ou TEZ, les phases suivantes sont les classiques phases de YARN pour la gestion des ressources
du cluster et HDFS pour la partie stockage des données.
A l’instar de Hive, Pig ne stocke pas les données mais offre un langage de manipulation des
données.
b- SPARK
Conçu en 2009 par un étudiant Canadien Matei ZAHARIA, SPARK est un logiciel dont
l’objectif était de créer un modèle de calcul distribué pour accélérer les traitements effectuer
par Hadoop, donc pour concurrencer directement MapReduce. Le projet a été transféré à la
fondation Apache en 2013 et plus de 1000 contributeurs le font évoluer depuis. Il a été conçu
Page | 17
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
pour fonctionner sur un cluster de serveur. Il s’appuie sur les Ressources Manager (YARN,
Mesos, Kubernetes, Spark standalone) pour acquérir de la puissance de calcul. Les données
que Spark va manipuler réside dans HDFS, peuvent aussi être stockées dans d’autres systèmes
de fichier comme Amazon S3 ou Azure Blob Storage. Apache Spark est composé de plusieurs
modules, de plusieurs librairies comme Spark SQL, Spark Streaming, Spark MLlib et Spark
GraphX.
- Spark SQL : permet d’exécuter des requêtes SQL sur les jeux de données de Spark
appelé Datasets ; Intégration des requêtes SQL dans les programmes : les langages
supportés par Spark sont Java, Scala, Python ; Les Requêtes SQL sur des fichiers JSON,
Parquet, des tables accédées via JDBC, ainsi que des tables Hive.
- Spark MLlib : est une librairie de Spark spécialisé dans le Machine Learning
(apprentissage automatique).
- Spark GraphX : est une API qui permet de développer des applications afin de lier les
données sous forme de graphes, les données étant dans le cluster HDFS (cluster
Hadoop).
Page | 19
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
a- Kafka
C’est une plateforme de streaming distribuée, initialement développée par LinkedIn et
maintenant maintenue par la fondation Apache. Elle est conçue pour la gestion et le
traitement de flux de données en temps réel à grande échelle.
Kafka est composé de :
Broker : est un serveur ou un nœud dans le cluster Kafka. Il gère le stockage et la
réplication des données (appelées messages) qui sont publiées et consommées par les
producteurs et les consommateurs.
Topic : est une catégorie ou un flux de messages dans Kafka. Les producteurs envoient
des messages à un topic spécifique, tandis que les consommateurs lisent les messages
à partir de ce topic. Les topics peuvent être divisés en partitions pour permettre une
distribution parallèle des données.
Producteur : est une application ou un processus qui envoie des messages à un ou
plusieurs topics Kafka. Les producteurs publient les messages dans les partitions
spécifiques des topics.
Consommateur : est une application ou un processus qui lit les messages à partir des
topics Kafka. Les consommateurs s’abonnent à un ou plusieurs topics et consomment
les messages à mesure qu’ils sont publiés.
b- Flume
Flume est un système de collecte de données distribué et fiable, développé par la fondation
Apache. Il est conçu pour l’ingestion efficace de donnée à partir de diverses sources et leur
transfert vers un système de stockage centralisé, généralement Hadoop HDFS.
- Agent : est une instance d’exécution qui collecte, transfère et stocke les données.
Chaque agent Flume est responsable d’une partie spécifique du flux de donnée.
- Source : est le point d’entrée des données dans Flume. Elle représente la source de
donnée à collecter, telle qu’un fichier de journal, un flux de données réseau, une base de
données, etc.
- Canal : est un tampon intermédiaire dans Flume qui stocke temporairement les données
collectées avant de les transmettre à la destination finale.
- Intercepteur : est un composant facultatif dans Flume qui permet de manipuler les
évènements de données en transit. Il peut effectuer des opérations de transformations, de
filtrage ou d’enrichissement des données.
- Cible : c’est la destination finale des données dans Flume ( HDFS, base de donnée… )
Page | 22
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
c- STORM
Storm est un système de traitement de flux de données en temps réel, distribué et scalable,
développé par Twitter. Il est conçu pour le traitement de donnée en continu à grande vitesse
avec une faible latence.
a- OOZIE
Oozie a été développé par Yahoo. Il a pour objectif de planifier et lancer l’exécution des
tâches de traitement sur un cluster Hadoop. Ainsi comme l’illustre la figure ci-dessous, un
Workflow (regroupement logique de tâche) est programmé en fonction d’une heure ou d’un
déclencheur grâce au Coordinateur.
Page | 23
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
b- MESOS
Mesos est un système de gestion de clusters open source développé par Apache Software
Foundation. Il fournit une plateforme pour le déploiement et la gestion de ressources
informatiques distribuées, telles que des serveurs, des conteneurs et des applications, à grande
échelle.
❖ Master : Le nœud maître (master) est responsable de la gestion des ressources de calcul
dans le cluster Mesos. Il est chargé de la planification des tâches et de la gestion des ressources
disponibles.
❖ Agent : Un agent, également appelé esclave (slave), est un nœud dans le cluster Mesos
qui offre des ressources informatiques, telles que CPU, mémoire et stockage, à l'environnement
Mesos.
Page | 24
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
❖ Framework : est une entité logicielle qui s'exécute sur Mesos et utilise ses ressources
pour exécuter des tâches. Les Framework peuvent être des systèmes distribués, des applications
de calcul intensif, des services en temps réel, etc.
❖ Scheduler : est une partie d'un Framework qui décide comment allouer les ressources
disponibles aux tâches du Framework. Il communique avec le nœud maître pour obtenir des
ressources et les attribuer aux tâches.
❖ Task: est une unité de travail exécutée par un Framework sur Mesos. Une tâche peut
être une application, un processus, un conteneur, etc.
c- Zookeeper
Page | 25
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
clients sont des nœuds qui consomment les services fournis par l’ensemble
ZooKeeper.
Page | 26
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
CONCLUSION
En conclusion, Hadoop est un Framework puissant et largement utilisé dans le domaine
du Big Data. Il offre des solutions pour le stockage et le traitement distribué des données à
grande échelle. Grâce à son système de fichier HDFS et son modèle de traitement par lots
MapReduce, Hadoop permet de gérer efficacement les ensembles de données massifs. Son
écosystème riche offre de nombreuses possibilités d'analyse et de traitement avancés. Avec
l'essor continu du Big Data, Hadoop joue un rôle essentiel dans l'industrie en permettant aux
entreprises de tirer parti de leurs données pour prendre des décisions stratégiques éclairées. En
explorant les composants, le système de fichier HDFS, le mode de calcul, et l'écosystème de
Hadoop, nous avons pu comprendre l'architecture et les fonctionnalités clés de ce Framework.
Il est clair que Hadoop continue d'évoluer et de s'adapter aux défis du Big Data, ce qui en fait
une technologie essentielle pour les entreprises et les chercheurs dans le domaine de l'analyse
des données massives.
Page | 27
Rédiger et présenter par le GROUPE I
PRESENTATION DU FRAMEWORK HADOOP
INTRODUCTION .................................................................................................................................. 2
Page | 28
Rédiger et présenter par le GROUPE I