Académique Documents
Professionnel Documents
Culture Documents
MIT
Encadrer par :
-Mr Mohammed El haziti
Realiser Par :
-Houda El Mohamadi -Youssef Lakrad
-Sami Belattar -Ayoub Fraidi
Le terme BIG DATA désigne un domaine qui permet de collecter, stocker et analyser de grandes
quantités de données pour prendre des décisions informées et améliorer les opérations et les stratégies.
Il est utilisé dans de nombreux secteurs. Il est généralement géré à l’aide de systèmes tels que Hadoop
qui est un outil clé pour gérer efficacement ces données en temps réel, il est open-source, distribué et
évolutif. Il permet également de scaler facilement pour gérer des quantités de données massives et de
stocker des données non structurées. Il est souvent utilisé en conjonction avec d’autres outils tels que
Hive, Pig, et Spark pour faciliter l’analyse et le traitement des données. Peuvent également utiliser des
outils de machine learning (apprentissage automatque) tels que Mahout et des outils de visualisation
tels que Tableau pour représenter les données sous forme d’un modèle de manière claire et intuitive.
Cependant, il y a des enjeux importants liés à la gestion, la sécurité et la protection de la vie privée
des données qui doivent être pris en compte pour garantir une utilisation éthique et responsable des
données. En somme, le système Hadoop joue un rôle très important dans la gestion et l’analyse des
données de Big Data , et est utilisé conjointement avec d’autres outils pour maximiser les avantages
pour les entreprises.
Les mots clès : Le Big Data, Les donnés, Hadoop, Les outils Hadoop, Machine learning
2
TABLE DES MATIÈRES
Introduction Générale 6
2 LE SYSTEME HADOOP 13
2.1 Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 L’écosystème Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 HDFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.1 Définition HDFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 L’architecture de HDFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2.1 NameNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2.2 DataNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2.3 Secondry NameNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.3 Fonctionnement de HDFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.2 La structure de MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5 YARN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.2 L’architecture de YARN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.3 Le Processus de fonctionnemnent de YARN . . . . . . . . . . . . . . . . . . . . 18
3
3.2.1 Définition de Hive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.2 L’infrastructure HIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.3 Processus de fonctionnement Hive . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3 Pig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.2 L’infrastrcture Pig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.3 Fonctionnement du PIG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
8 APPLICATION HADOOP 38
8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
8.2 Base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
8.3 Implementation des résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
8.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Conclusion Générale 41
4
TABLE DES FIGURES
1 Le BIG DATA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1 Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 L’écosystème Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Architecture HDFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 L’architecture de MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Hadoop YARN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.6 Architecture YARN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5
Introduction Générale
Aujourd’hui, le Big Data attire beaucoup d’attention dans le monde informatique. L’essor rapide
d’Internet et de l’économie numérique a alimenté une croissance exponentielle de la demande de sto-
ckage et d’analyse de données, et le service informatique est confronté à un énorme défi pour protéger
et analyser ces volumes accrus d’informations. La raison pour laquelle les organisations collectent et
stockent plus de données que jamais auparavant est que leur activité en dépend. Le type d’informa-
tions créées n’est plus des données traditionnelles basées sur une base de données appelées données
structurées, mais plutôt des données qui incluent des documents, des images, de l’audio, de la vidéo et
du contenu de médias sociaux connus sous le nom de données non structurées ou Big Data.
Il n’y a aucun endroit où le Big Data n’existe pas. Selon Forbes, chaque minute, les utilisateurs
regardent 4,15 millions de vidéos sur YouTube, envoient 456 000 tweets sur Twitter, publient 46 740
photos sur Instagram et 510 000 commentaires et 293 000 statuts sont mis à jour sur Facebook ! Imagi-
nez seulement l’énorme quantité de données produites par de telles activités. Cette création constante
de données à l’aide des médias sociaux, des applications commerciales, des télécommunications et de
divers autres domaines conduit à la formation de Big Data.
L’objectif de notre projet a pour but de savoir plus des connaissances à propos le big data. Plus
précisément d’étudier le système Hadoop et comprendre plus profondément son écosystème, c’est-à-
dire leur fonctionnement et comment ses outils principaux fonctionnent aussi le structuré des outils
complémentaires, ainsi que sa liaison avec la machine learning.
Premièrement nous allons presenter une vue générale de big data (les types, les caractéristiques...).
Dans le deuxième chapitre nous allons entamer le système Hadoop qui est l’élément principal dans ce
projet. Et nous allons finir notre rapport par une implementation pour visualiser les résultats en temps
réel.
6
CHAPITRE 1
BIG DATA ET SON INGESTION
7
1.1 Big Data
Le Big Data (Le méga données) Analytics reflète les défis des données qui sont trop vastes, trop
non structurées et trop rapides pour être gérées par des méthodes traditionnelles. Des entreprises et
des instituts de recherche aux gouvernements, les organisations génèrent désormais régulièrement des
données d’une portée et d’une complexité sans précédent Tout d’abord, il est important de spécifier
que le Big Data n’a pas une définition arrêtée. De nombreuses variantes de descriptions sont retrouvées
mais, bien sûr, elles sont similaires et renferment les mêmes concepts. le Big Data est une méthodologie
caractérisé par une explosion des données, qui peuvent contenir des opportunités qu’on peut saisir,
non pas à l’aide d’approches technologiques traditionnelles, mais à l’aide d’approches technologiques
innovantes. Il consiste de traité les information non structurée a grande vitesse.
- Les données structurées : ont un format déterminé et sont souvent numériques. Dans la
majorité des cas, ils sont traités par des machines au lieu des humains. Ce type de données
est composé d’informations déjà organisées en bases de données et en tableurs stockés dans des
bases de données SQL, des data lakes et des entrepôts..
- Les données semi-structurées :contiennent les deux types de données précédents, comme
c’est le cas pour les journaux de serveur web où les données des capteurs que vous avez configurés.
Bien que ces données n’aient pas été classées dans un dépôt (base de données) particulier, elles
contiennent des informations essentielles ou des balises séparant les différents éléments au sein
des données.
- Les données non structurées : est de l’information qui n’est pas organisée et dont le format
n’est pas prédéterminé, puisqu’elle peut être presque n’importe quoi. Les données recueillies à
partir des réseaux sociaux, par exemple, sont des données non structurées. Ceux-ci peuvent être
placés dans des fichiers texte stockés dans des clusters Hadoop ou des systèmes NoSQL.
8
Figure 1.2 – Les 5V du big data
— La variéte : Les données peuvent prendre des formes très variées et très hétérogènes (voix,
données faciales, données transactionnelles, web analytics, textes, images, etc.)
— La veracité : Fait référence à l’exactitude des données. Vous devez toujours vérifier vos données
et vous assurer que vous disposez de suffisamment de données exactes pour obtenir des résultats
valides et significatifs.
— Le volume : Comme son nom l’indique, le Big Data consiste en de grandes quantités de
données. Il peut s’agir de données de valeur inconnue, telles que des données de clics pour des
pages Web ou des applications mobiles.
— La vitesse : est le grand V qui représente la rapidité de la réception et du traitement des
donnés.
— La valeur : Il est important de connaître la valeur des données dont vous disposez. Vous devrez
également mettre en place des moyens de nettoyer vos données et de vous assurer qu’elles sont
pertinentes pour vos objectifs.
Le noeud master :
Le noeud master est un nœud qui joue un rôle de contrôleur pour les autres nœuds dans le cluster.
Il est responsable de la gestion des ressources, de la planification des tâches et de la distribution des
données.
le nœud maître (master) est un composant critique pour le bon fonctionnement du
système, si il tombe en panne, il peut causer des perturbations dans les tâches de gestion
de données. Pour éviter cela, plusieurs solutions de secours sont disponibles pour prendre
en charge les tâches de gestion de données en cas de panne de nœud maître.
9
Figure 1.3 – Fonctionnement de BIG DATA
L’idée principale du Big Data, c’est que plus vous avez d’informations sur un sujet, plus vous pouvez
en tirer des données qui vous permettront de prendre une décision ou de trouver une solution. Dans
la plupart des cas, ce processus est entièrement automatisé. L’ingestion big data dépond de quelques
paramètres qui varient pour chaque source de données :
- Vitesse des données.
- Taille des données.
- Variance des sources de données.
- Fréquence des données (Batch, micro-batch, streaming...)
10
learning. Les résultats de ces traitements sont ensuite stockés pour une utilisation ultérieure, par
exemple pour l’analyse ou l’affichage en temps réel.
l’ingestion de données en batch est généralement plus lente que l’ingestion de données
en temps réel, car les données doivent être collectées, stockées et traitées en séquence.
Cependant, il peut être utilisé pour les tâches de traitement de données qui nécessitent
une précision élevée et pour les tâches qui ont des exigences de stockage à long terme.
11
- Sécurité des données : les entreprises doivent protéger les données sensibles contre les fuites,
les vols et les cyberattaques.
- Respect de la vie privée : les entreprises doivent respecter les lois et les règlementations
relatives à la vie privée des individus, telles que le RGPD en Europe.
- Prise de décision : les entreprises peuvent utiliser les données pour prendre des décisions
informées et améliorer les opérations et les stratégies.
- Automatisation des processus : les entreprises peuvent utiliser les données pour automatiser
les processus, tels que la surveillance des performances et la détection des anomalies.
Le Big Data est un concept important, qui s’applique à des données qui ne sont pas conformes à la
structure normale de la base de données traditionnelle. Le Big Data se compose de différents types de
technologies clés telles que Hadoop, HDFS, NoSQL, MapReduce, MongoDB, HIVE... que nous allons
entamer dans le chapitre suivante et qui fonctionnent ensemble pour atteindre l’objectif final
12
CHAPITRE 2
LE SYSTEME HADOOP
13
2.1 Hadoop
La mise en œuvre d’un projet Big Data nécessite le choix d’une méthode de stockage, d’une techno-
logie d’exploitation et des outils d’analyse de données. Pour optimiser les temps de traitement sur des
bases de données volumineuses, une panoplie de solutions existe. Dans ce chapitre nous allons entamer
l’un des solution open source c’est hadoop.
Hadoop est un framework libre et open source en JAVA utilisé pour le stockage et traitement des
big data et permettant aux application de fonctionner avec des millier noeuds des données de different
types. Les données sont stockées sur des serveurs standard peu coûteux configurés en clusters.
L’objectife globale de hadoop est de résoudre les deux principaux problèmes de la manipulation de
grandes quantités des données :
- Stockage des données (limitation de la tailles du disque durs).
- Recherche rapide dans les données (Limitation de la puissance de calcule).
L’écosystème hadoop comporte des elements de base indispensables au framework, et d’autres sont
des éléments complementaire qui ajoutent des fonctionnalités
14
2.3 HDFS
2.3.1 Définition HDFS
HDFS (Hadoop Distributed File System) est un système de fichiers distribué conçu pour stocker
des quantités massives de données de manière efficace et tolérant aux pannes. Il permet de stocker
des fichiers de grande taille en les découpant en plusieurs morceaux appelés blocs, qui sont ensuite
répartis sur différents nœuds d’un cluster. Il prend en charge la réplication des données pour assurer
la disponibilité et la tolérance aux pannes. Il permet également aux utilisateurs de traiter les données
directement sur le système de fichiers plutôt que de les charger dans un système de base de données.
2.3.2.1 NameNode
Namenode est le nœud maître dans l’architecture HDFS. Il est responsable de la gestion des noms
de fichiers et de la mappage des noms de fichiers aux blocs de données stockés sur les nœuds de données.
Il maintient également une liste des nœuds de données qui stockent chaque bloc de données. Il gère les
opérations de lecture et d’écriture des données sur HDFS, et il est responsable de la répartition des
tâches de lecture et d’écriture sur les différents nœuds de données. Il est également responsable de la
gestion de la réplication des données pour assurer la tolérance aux pannes. Il est le point central de
gestion et de coordination pour toutes les opérations dans le système HDFS.
2.3.2.2 DataNode
DataNode est un nœud esclave qui stock physiquement les données sur le disque, il stocke les
données sous forme de blocs de taille fixe, il est également responsable de la lecture et de l’écriture des
données sur HDFS, de la gestion de la réplication des données pour assurer la tolérance aux pannes
et la gestion de l’espace disque en supprimant les blocs de données qui ne sont plus nécessaires. Il
communique régulièrement avec Namenode pour signaler la disponibilité des blocs de données qu’il
stocke et pour recevoir des instructions sur les opérations de lecture et d’écriture. Il est un composant
fondamentale pour garantir la disponibilité et la tolérance aux pannes dans HDFS.
15
2.3.2.3 Secondry NameNode
SecondaryNameNode, a pour rôle de maintenir une copie de la mémoire tampon du NameNode
principal, cela permet de limiter les risques de perte de données en cas de panne du NameNode principal.
Il exécute également des tâches de maintenance telles que la fusion des journaux de transactions pour
éviter que la mémoire tampon du NameNode principal ne devienne trop volumineuse.
SecondaryNameNode ne remplace pas le NameNode principal et n’est pas utilisé pour
gérer les opérations de lecture et d’écriture des données. Il est utilisé uniquement pour des
tâches de maintenance et de sauvegarde de la mémoire tampon du NameNode principal.
2.4 MapReduce
2.4.1 Définition
MapReduce est un modèle de programmation distribué pour traiter des grandes quantités de don-
nées. Il est utilisé pour effectuer des calculs parallèles sur des clusters de nœuds.
MapReduce est souvent utilisé en conjonction avec HDFS pour stocker et traiter des données
massives de manière efficace. Il est également utilisé avec des systèmes de gestion de données distribuées
tels que Hadoop pour faciliter le traitement parallèle de big data.
16
Figure 2.4 – L’architecture de MapReduce
Entre le Mapping et le Reduce il existe une étape qui s’appelle Combine et Partition.
- Combine : est un processus facultatif. Un Combiner est en fait un Reducer complémentaire
qui fonctionne séparément sur chaque serveur Mapper. Le Reducer poursuit la réduction des
données de chaque Mapper sous une forme simplifiée avant de les transmettre en aval – ce qui
facilite et accélère les opérations de mélange et le tri, dans la mesure où le volume de données
à traiter a été réduit.
- Partition : est le processus qui traduit les paires <key, value> générées par les Mappers
en d’autres paires <key, value> qui sont injectées dans le Reducer. Le Partitioner par défaut
détermine la valeur de hachage de clé transmis par le Mapper et assigne une partition en fonction
de cette valeur. Il y a autant de partitions que de Reducers. Lorsque le partitionnement est
terminé, les données de chaque partition sont transmises à un Reducer donné.
2.5 YARN
2.5.1 Définition
YARN (yet another resources negotiator) est un système de gestion de ressource distibuer qui
permet de gérer des applications distribuées sur un cluster Hadoop. Il permet de gérer les ressources
(processeur, mémoire, espace disque) de manière efficace pour les différentes applications qui s’exé-
cutent sur le cluster. Il permet differentes méthodes de traitement de données telles que le traitement
graphique, le traitement de flus ainsi que le traitement par lots pour executé et traités les données
stockés dans HDFS.
17
- NodeManager : C’est le composant esclave qui s’exécute sur chaque nœud du cluster et est
responsable de l’exécution des tâches et de la surveillance des ressources (mémoire, processeur,
espace disque) sur chaque nœud. Il envoie des rapports d’état au ResourceManager pour lui
permettre de prendre des décisions en matière d’allocation de ressources.
- ApplicationMaster : Il est un composant logiciel qui est lancé pour chaque application pour
gérer les tâches de cette application. Il est responsable de demander des ressources au Resour-
ceManager, de planifier les tâches à exécuter sur les NodeManagers et de surveiller l’exécution
des tâches.
- Container : Il est un environnement d’exécution qui est alloué par le ResourceManager pour une
application via l’ApplicationMaster. Il contient les ressources (mémoire, CPU, espace disque)
allouées pour une tâche d’application donnée.
18
CHAPITRE 3
TRAITEMENT DE DONNÉES SQL
19
3.1 Sqoop
3.1.1 Définition
Sqoop est un outil open-source très utilisé pour intégrer des données dans des environnements Big
Data, qui permet de transférer des données entre des systèmes Hadoop et des bases de données rela-
tionnelles (RDBMS) tels que MySQL, Oracle, et PostgreSQL. Il permet aux utilisateurs de transférer
des données entre Hadoop et les bases de données relationnelles, ainsi que d’importer et d’exporter
des données en utilisant des commandes en ligne simples. Il supporte également la parallélisation des
imports et exports pour accélérer les transferts de données.
20
3.2 Hive
3.2.1 Définition de Hive
Hive est un outil de gestion de données open-source qui permet aux utilisateurs de travailler avec
des données stockées dans HDFS en utilisant une syntaxe SQL familière. Il fournit une interface de
requête pour les utilisateurs qui ne sont pas familiers avec le langage de programmation MapReduce
ou des commandes en ligne et permet de gérer les tables, les partitions, les buckets, les fonctions
incorporées et l’optimisation pour améliorer les performances des requêtes
21
3.2.3 Processus de fonctionnement Hive
Le processus de fonctionnement de Hive consiste à soumettre une requête SQL, analyse la requête,
génère un plan d’exécution, exécute la requête sur le cluster Hadoop, retourne les résultats et met à
jour les métadonnées si la requête modifie les données. generalement le processus hive se deroule selon
les étapes suivante :
- Soumission de la requete : l’utilisateur soumet une requête SQL à l’interface de requête
Hive.
- Analyse de la requete : : Le serveur Hive analyse la requête pour identifier les tables et les
colonnes concernées, vérifie les autorisations d’accès et optimise la requête pour une exécution
efficace.
- Génération de plan d’exécution : Le serveur Hive génère un plan d’exécution pour la
requête en utilisant les informations stockées dans le métastore et en utilisant des techniques
d’optimisation telles que la sélection de la meilleure stratégie d’accès aux données.
- Exécution de la requete : Le serveur Hive envoie les âches MapReduce générées par le plan
d’exécution pour l’exécution sur le cluster Hadoop.
- Retour des résultats : Le serveur Hive retourne les résultats de la requête à l’utilisateur.
- Mis à jours des métadonnées : Si la requete modifier les données, les métadonnées sont mis
a jour dans les métastores.
3.3 Pig
3.3.1 Définition
Apache Pig est un langage de programmation de haut niveau conçu pour l’analyse de données
volumineuses dans Hadoop. Pig permet aux utilisateurs d’écrire des programmes appelés scripts Pig,
qui sont ensuite exécutés sur une infrastructure Hadoop pour effectuer des opérations de traitement
de données.
22
en tâches MapReduce qui sont exécutées sur un cluster Hadoop. Pig fournit également de nombreux
opérateurs intégrés pour le traitement de données et peut être étendu avec des fonctions utilisateur
personnalisées.
- Compilation : Lorsqu’un script Pig est écrit, le compilateur Pig compile le code en un ensemble
de tâches MapReduce. Le code Pig est écrit en utilisant le langage de requête Pig Latin, qui est
un langage de haut niveau pour le traitement de données.
- Exécution : Les tâches MapReduce générées par le compilateur Pig sont ensuite exécutées sur
un cluster Hadoop. Pendant l’exécution, les données sont lues à partir de sources de données
telles que HDFS (Hadoop Distributed File System) ou HBase, et sont traitées en utilisant les
opérateurs Pig. Les résultats peuvent ensuite être stockés dans HDFS ou exportés vers des bases
de données externes.
23
CHAPITRE 4
TRAITEMENT DE DONNÉES NOSQL
24
4.1 HBase
4.1.1 Définition
HBase est une base de données NoSQL distribuée qui est construite sur Apache Hadoop. Elle offre
une haute disponibilité, une tolérance aux pannes et une évolutivité horizontale pour les applications
nécessitant une grande quantité de données en temps réel. HBase stocke les données dans des tables
qui sont divisées en régions qui sont distribuées sur différents nœuds du cluster. Chaque région est
répliquée sur plusieurs nœuds pour assurer la tolérance aux pannes et la disponibilité continue. Les
données dans HBase sont organisées en colonnes plutôt qu’en lignes, ce qui permet une récupération
rapide des données en fonction des critères de recherche.
25
4.2 MongoDB
4.2.1 Définition
MongoDB est une base de données NoSQL orientée documents qui offre une grande flexibilité pour
stocker et gérer des données semi-structurées ou non structurées.MongoDB stocke les données dans des
documents BSON (Binary JSON) qui sont similaires à des objets JSON, mais qui peuvent également
stocker des données binaires. Les documents sont stockés dans des collections, qui sont similaires à des
tables dans les bases de données relationnelles. MongoDB offre une haute disponibilité et une tolérance
aux pannes grâce à la réplication des données sur plusieurs nœuds du cluster.
26
CHAPITRE 5
GESTION, CORDINATION ET
PLANIFICATION
27
5.1 Apache Flume
5.1.1 Définiton
Apache Flume est un outil de collecte, de transport et de chargement de données distribué pour les
systèmes de traitement de données volumineux, tels que Hadoop. Il permet aux utilisateurs de collecter
des données à partir de différentes sources, telles que des fichiers log, des systèmes de messagerie et
des sources de données en temps réel, puis de les acheminer vers un système de stockage de données,
comme HDFS ou HBase.
Flume prend en charge plusieurs protocoles de transport, tels que HTTP, Avro et Thrift, qui
permettent aux utilisateurs de choisir le protocole qui convient le mieux à leur environnement. Il prend
également en charge différents formats de données, tels que les fichiers textes, les fichiers JSON et les
fichiers protobuf.
28
Figure 5.2 – Architecture de apache flume
5.2 Zookeper
5.2.1 Définition
ZooKeeper est un service de coordination distribué open source qui permet de synchroniser et
de gérer les services distribués dans un environnement informatique distribué. ZooKeeper fournit des
primitives de haut niveau pour les opérations de coordination, comme les verrous, les séquences et les
élections de leader, qui permettent de mettre en place des opérations de coordination en toute sécurité.
ZooKeeper est utilisé dans de nombreux projets Apache, notamment Hadoop, Kafka, Storm et Solr
- Serveurs ZooKeeper : Le service ZooKeeper est exécuté sur un ensemble de serveurs qui
forment un quorum. Les serveurs ZooKeeper stockent l’état des services distribués dans un
arbre de données hiérarchique, appelé znode.
- Clients ZooKeeper : Les clients ZooKeeper sont des applications qui accèdent aux services
distribués en utilisant l’API de ZooKeeper. ZooKeeper fonctionne en mode répliqué, ce qui
signifie que les serveurs ZooKeeper se répliquent mutuellement l’état des services distribués en
temps réel.
29
- Mode de fonctionnement : ZooKeeper fonctionne en mode répliqué, ce qui signifie que les
serveurs ZooKeeper se répliquent mutuellement l’état des services distribués en temps réel.
- Élections de leader : Les serveurs ZooKeeper utilisent des élections de leader pour élire un
serveur primaire, qui est responsable de la coordination des opérations de lecture et d’écriture
des clients. Si le leader tombe en panne, les serveurs ZooKeeper organisent une nouvelle élection
pour choisir un nouveau leader.
5.3 Oozie
5.3.1 Définition
Oozie est un système de planification de tâches pour Hadoop. Il permet de planifier, exécuter et
suivre des tâches Hadoop, telles que les tâches MapReduce, Pig, Hive et Sqoop. Oozie est conçu pour
fonctionner avec le système de fichiers distribué HDFS (Hadoop Distributed File System) et peut
également utiliser des données stockées dans d’autres systèmes de fichiers distribués tels que HBase et
Amazon S3.
En utilisant Oozie, les utilisateurs peuvent planifier des tâches pour s’exécuter à des moments
précis, répéter des tâches à des intervalles réguliers, ou déclencher des tâches en fonction de l’arrivée
de nouvelles données. Cela permet aux utilisateurs de créer des workflows de tâches automatisés pour
gérer de manière efficace les données dans un cluster Hadoop.
30
CHAPITRE 6
MACHINE LEARNING ET HADOOP
31
Le machine learning est un domaine de l’intelligence artificielle qui permet aux ordinateurs d’ap-
prendre à partir de données, sans être explicitement programmés. Il est utilisé pour résoudre de nom-
breux problèmes complexes dans les domaines tels que la reconnaissance de la parole, la vision par
ordinateur, les systèmes de recommandation, la prédiction de données et dans le contexte de Big data.
32
- GraphX : Il s’agit d’un module qui permet de traiter les données graphiques en utilisant des
techniques de calcul parallèle. Il offre des fonctionnalités pour la création, la transformation et
l’analyse de graphes.
- Cluster Manager : Il gère la mise en place, la configuration et le déploiement des applications
Spark sur un cluster. Il prend en charge plusieurs gestionnaires de cluster tels que YARN, Mesos
et Kubernetes.
33
- Mahout-Hdfs : Il s’agit d’un module pour le traitement de données stockées dans HDFS, qui
prend en charge les formats de données tels que SequenceFiles, TextFiles et Avro
34
CHAPITRE 7
VISUALISATION DES DONNÉES
35
7.1 Visualisation Hue
7.1.1 Définiton Hue
HUE (Hadoop User Experience) est une interface graphique utilisateur open source pour Hadoop,
un framework de traitement distribué de données. HUE permet aux utilisateurs d’interagir avec les
composants de Hadoop, tels que HDFS (Hadoop Distributed File System) pour le stockage distribué de
fichiers et MapReduce pour le traitement distribué de données, de manière plus conviviale et intuitive
que les interfaces en ligne de commande.
Avec HUE, les utilisateurs peuvent visualiser, gérer et analyser les données stockées dans Hadoop,
exécuter des tâches de traitement de données complexes, créer des requêtes SQL pour accéder à des
bases de données et générer des graphiques et des visualisations pour mieux comprendre leurs don-
nées. HUE propose également des fonctionnalités pour la gestion des clusters Hadoop, y compris la
surveillance des ressources et des tâches. HUE est souvent utilisé par les ingénieurs et les scientifiques
de données pour accéder et analyser des données stockées dans des clusters Hadoop.
36
Figure 7.2 – Composante Hue
7.2 Visualisation D3
La visualisation de données avec D3 (Data-Driven Documents) est une technique qui utilise la
bibliothèque JavaScript D3 pour créer des graphiques et des visualisations interactifs à partir de don-
nées. D3 est une bibliothèque open source qui permet aux développeurs de créer des visualisations de
données dynamiques et personnalisées en utilisant les langages HTML, SVG et CSS.
La visualisation de données avec D3 peut être utilisée pour diverses applications, telles que la
surveillance des performances, l’analyse de données, la science des données, la surveillance de la sécurité,
la surveillance de la qualité, etc. Elle permet aux utilisateurs d’explorer et de comprendre rapidement
les données en utilisant des graphiques interactifs et des visualisations.
La visualisation de données avec D3 peut être réalisée en plusieurs étapes. Tout d’abord, les données
doivent être collectées et stockées dans un format de données standard, tel que JSON ou CSV. Ensuite,
les données sont transformées en un format compatible avec D3 en utilisant des fonctions JavaScript
personnalisées. Enfin, les graphiques et les visualisations sont créés en utilisant des fonctions D3 qui
permettent de dessiner les éléments de la visualisation et d’interagir avec les données.
D3 offre une grande flexibilité dans la création de visualisations de données, car il permet aux
développeurs de personnaliser tous les aspects de la visualisation, tels que les couleurs, les axes, les
légendes, les titres, les étiquettes, etc. Il offre également de nombreuses fonctionnalités pour l’interaction
avec les données, telles que le zoom, le survol, le glissement, le redimensionnement, etc.
37
CHAPITRE 8
APPLICATION HADOOP
38
8.1 Introduction
D’après ce que nous avons étudier dans les deux chapitre précédent théoriquement à propos le big
data et l’écosystème hadoop. Dans ce dérnier chapitre nous allons entamer la parti pratique de notre
projet.
- Split des données en ensemble d’entraînement et de test : Les données doivent être
divisées en deux ensembles, un ensemble d’entraînement utilisé pour former l’algorithme, et un
ensemble de test utilisé pour évaluer la performance de l’algorithme.
- Entraînement du modèle d’ANN : L’algorithme de réseau de neurones artificiel (ANN) est
entraîné sur l’ensemble d’entraînement en utilisant Spark MLIB pour optimiser la performance
39
de l’algorithme.
- Évaluation de la performance : La performance de l’algorithme est évaluée en utilisant l’en-
semble de test. Les métriques couramment utilisées pour évaluer les algorithmes d’apprentissage
automatique incluent la précision, et la spécificité. Les résultats ont montré une grande préci-
sion (94,7%), une grande précision globale (97,3%), une grande sensibilité (97,3%) et une grande
mesure F1 (95,9%) dans la prédiction des décès dus à la COVID-19. Ces résultats indiquent
que notre modèle est capable d’identifier les groupes à haut risque de décès dus à la COVID-19.
En utilisant cet algorithme, nous pouvons fournir une assistance précieuse aux décideurs pour
identifier les groupes à haut risque, ce qui peut aider à mieux protéger la santé publique et
à prévenir la propagation de la COVID-19. De plus, l’utilisation de techniques telles que Ma-
pReduce, la sélection des caractéristiques et la codification en one-hot a permis de réduire la
complexité des données et d’améliorer les performances de l’algorithme. Grâce à ces résultats,
nous espérons contribuer à l’amélioration des politiques de santé publique et des mesures de
prévention et de contrôle de la COVID-19 dans le monde entier.
8.4 Conclusion
En conclusion, la création d’un algorithme pour identifier les groupes à haut risque de décès dus
à la COVID-19 nécessite une préparation minutieuse des données, y compris l’élimination des valeurs
manquantes, les duplicatas et les données erronées. La sélection des caractéristiques pertinentes et
l’utilisation de l’encodage One-Hot sont également des étapes importantes pour préparer les données
pour l’analyse. L’utilisation de MapReduce a aidé à améliorer les performances de l’algorithme en four-
nissant une méthode efficace pour traiter les grandes quantités de données. L’entraînement d’un modèle
de réseau de neurones artificiel (ANN) à l’aide de Spark MLIB a permis d’optimiser la performance de
l’algorithme. En utilisant cet algorithme, nous pouvons fournir une assistance précieuse aux décideurs
pour identifier les groupes à haut risque, ce qui peut aider à mieux protéger la santé publique et à
prévenir la propagation de la COVID-19.
40
Conclusion Générale
Les technologies du Big Data s’inscrivent dans une évolution continue compte tenu du fait qu’elles
sont jeunes et pas encore stables, ce qui leur vaut la réticence des certaines entreprises. Actuellement,
le virage technologique est d’ores et déjà annoncé. Le Big Data s’impose tout doucement, mais certains
aspects ne sont pas encore à la hauteur des attentes, certaines pistes sont à explorer profondément avant
l’intégration dans les systèmes d’information : la sécurité, l’intégration avec le système d’information
(Cette intégration entraînera une modification des processus et par conséquent des besoins de formation
des ressources humaines), les ressources compétentes(actuellement les compétences ne sont pas encore
assez poussées dans le domaine), protection de la vie privée (la manipulation à grande échelle de des
données pose aussi le problème de la vie privée).
En conclusion, le Big Data, le système Hadoop et le Machine Learning sont trois domaines clés qui
ont un impact significatif sur les entreprises de tous les secteurs. Le Big Data permet aux entreprises
de collecter, stocker et analyser de grandes quantités de données pour prendre des décisions informées.
Le système Hadoop est un outil puissant pour gérer et analyser efficacement ces données en temps réel.
Il permet une scalabilité et une fiabilité élevées, et est de plus en plus utilisé pour traiter les données
en temps réel. Le Machine learning est un domaine qui permet de créer des modèles automatisés pour
prévoir des événements futurs ou pour comprendre les données plus facilement. Il permet également
d’optimiser les processus automatisés et de prendre des décisions plus informées. Les entreprises doivent
être conscientes des enjeux liés à la gestion, la sécurité et la protection de la vie privée des données
pour garantir une utilisation éthique et responsable de ces données. En somme, le Big Data, le système
Hadoop et le Machine Learning sont des domaines clés qui ont un impact significatif sur les entreprises,
et qui doivent être gérés efficacement pour maximiser les avantages pour les entreprises.
L’avenir du Big Data est prometteur, avec des avancées technologiques continuant à améliorer la
capacité à collecter, stocker et analyser des données de plus en plus volumineuses, permettant aux
entreprises de prendre des décisions plus informées et d’optimiser leurs opérations pour un avantage
compétitif accru.
41
BIBLIOGRAPHIE
42