Académique Documents
Professionnel Documents
Culture Documents
Ecosystème Hadoop
Définition Hadoop
Caractéristiques de Hadoop
1
Traitement de Données en Entreprises
2
Traitement de Données en Entreprises
3
Big Data - Définition
"Le Big Data (ou mégadonnées) représente les collections de données caractérisées
par un volume, une vélocité et une variété si grands que leur transformation en valeur
utilisable requiert l’utilisation de technologies et de méthodes analytiques
spécifiques."
4
Big Data – Pourquoi ?
Augmentation exponentielle de la quantité de données nonstructurées
Email, chat, blog, web, musique, photo, vidéo, etc.
Augmentation de la capacité de stockage et d’analyse
L’utilisation de plusieurs machines en parallèle devient accessible.
Les technologies existantes ne sont pas conçues pour ingérer ces données
Base de données relationnelles (tabulaires), mainframes, tableurs (Excel),
etc.
De “nouvelles” technologies et techniques d’analyse sont nécessaires
“Google File System” - Google 2003.
“MapReduce: Simplified Data Processing on Large Clusters” - Google,
2004. Augmentation de la capacité de stockage
Hadoop: circa 2006.
D’où le“Big Data”: pas strictement plus dedata...
Source : https://www.decideo.fr/
6
Applications Big Data
● Recherche - PageRank (1996) ● Machine Learning / Deep Learning
● Santé ● Recommendation
● Éducation o Netflix, Hopper!
o MOOC ● Urbanisme
● Commerce de détail ● Gouvernements
o Amazon, WallMart ● Média
● Génomique o journalisme de données
o High-throughput sequencing ● Fraude (détection / prévention)
● Science / recherche fondamentale ● IoT
7
Définition Hadoop
Hadoop est un framework logiciel open source permettant de stocker des données, et de lancer des
applications sur des grappes de machines standards. Cette solution offre un espace de stockage massif
pour tous les types de données, une immense puissance de traitement et la possibilité de prendre
en charge une quantité de tâches virtuellement illimitée. Basé sur Java, ce framework fait partie du
projet Apache, sponsorisé par Apache Software Foundation.
Grâce au framework MapReduce, il permet de traiter les immenses quantités de données. Plutôt que
de devoir déplacer les données vers un réseau pour procéder au traitement, MapReduce permet de
déplacer directement le logiciel de traitement vers les données.
Il ne s’agit pas d’un produit à proprement parler, mais d’un framework regroupant des éléments pour
le stockage et le traitement de données distribuées. Différents éditeurs de logiciels ont utilisé Hadoop
pour créer des produits commerciaux de gestion Big Data.
Les systèmes de données Hadoop ne sont pas limités en termes d’échelle, ce qui signifie qu’il est
possible d’ajouter davantage de hardware et de clusters pour supporter une charge plus lourde sans
passer par une reconfiguration ou l’achat de licences logicielles onéreuses
Hadoop est un outil incontournable dans le monde du Big Data! 8
Qui utilise Hadoop ?
9
Qui utilise Hadoop ?
Yahoo: Search Webmap est une application Hadoop qui s'exécute sur un cluster Linux de plus de
10 000 machines et produit des données qui sont désormais utilisées dans chaque requête Yahoo de
recherche Web.
Google : La taille d'une phase du calcul [de l'index] est passée d'environ 3 800 lignes de code C++ à
environ 700 lignes lorsqu'il est exprimé à l'aide de MapReduce.
Facebook : Facebook a maintenant déployé plusieurs clusters Hadoop - le plus grand ayant environ
2500 cœurs de processeur et 1 pétaoctet d'espace disque. Nous chargeons chaque jour plus de 250
gigaoctets de données compressées (plus de 2 téraoctets non compressés) dans le système de
fichiers Hadoop et des centaines de tâches s'exécutent chaque jour sur ces ensembles de données.
Twitter, Amazon, Rackspace, LinkedIn, IBM, Veoh, Last.fm (en Bash ! !), Microsoft...utilisent aussi
Hadoop.
10
Histoire de Hadoop
En 2002, Doug Cutting et Mike Caferella de Google
travaillaient sur le projet de web crawler open source Apache
Nutch. Ils ont été confrontés à des difficultés pour stocker les
données, et les coûts étaient extrêmement élevés.
11
Hadoop Améliore les Bases de Données Traditionnelles
2. Vitesse – Avec Hadoop, vous pouvez stocker et récupérer les données plus rapidement :
Hadoop utilise le modèle de programmation fonctionnelle MapReduce pour exécuter un traitement
parallèle entre les datasets. Lorsqu'une requête est transmise à la base de données, les jobs (et les données)
spécifiés dans cette requête ne sont pas traités séquentiellement, mais répartis et exécutés simultanément
sur différents serveurs. À l'issue du traitement, les résultats des différents jobs sont regroupés et renvoyés à
l'application, ce qui améliore considérablement la vitesse de traitement.
12
Avantages de Hadoop pour les Big Data
Hadoop vous aide à relever le défi de l'énormité des Big data grâce à ses nombreuses qualités :
Résilience – Les données stockées dans un nœud du cluster sont répliquées dans d'autres nœuds, ce
qui garantit la tolérance aux incidents de Hadoop. Si un nœud tombe en panne, les autres serveurs du
cluster disposent toujours d'une copie de sauvegarde des données.
Évolutivité – Contrairement aux systèmes traditionnels qui ont une capacité de stockage limitée,
Hadoop est évolutif car il fonctionne dans un environnement distribué. En cas de besoin, la
configuration peut être facilement étendue en installant d'autres serveurs, et la capacité de stockage
peut ainsi atteindre plusieurs péta-octets.
Coût modéré – Hadoop étant un framework open source n'exigeant aucune licence, les coûts de cette
solution sont nettement inférieurs à ceux des bases de données relationnelles classiques. Par ailleurs,
l'utilisation d'un matériel standard peu coûteux explique le coût modéré de cette solution.
Diversité des données – Le HDFS peut stocker différents formats de données : structurées, non
structurées (par exemple, des vidéos) ou semi-structurées (par exemple, des fichiers XML). Lors du
stockage des données, il n'est pas nécessaire de valider celles-ci par rapport à un schéma prédéfini : les
données peuvent être téléchargées sous n'importe quel format. Lors de leur récupération, les données
sont analysées et utilisées en appliquant le ou les schémas requis. Cette souplesse permet de dériver
des connaissances différentes à partir des mêmes données.
13
Caractéristiques de Hadoop (1/6)
14
Caractéristiques de Hadoop (2/6)
Le code source est disponible gratuitement Les données sont traitées de manière
distribuée sur le cluster
Peut être redistribué
Plusieurs nœuds du cluster traitent les
Peut être modifié données indépendamment
15
Caractéristiques de Hadoop (3/6)
Les défaillances des nœuds sont récupérées Les données sont stockées de manière
automatiquement fiable sur le cluster de machines malgré
les pannes de machines
Le framework prend en charge les pannes de
matériel ainsi que les tâches La défaillance des nœuds n'entraîne pas
de perte de données
16
Caractéristiques de Hadoop (4/6)
Évolutivité verticale – De nouveaux Les données sont hautement disponibles et
matériels (CPU, RAM…etc) peuvent être accessibles malgré une panne matérielle
ajoutés aux nœuds
Évolutivité horizontale - De nouveaux Il n'y aura pas de temps d'arrêt pour
nœuds peuvent être ajoutés à la volée l'application de l'utilisateur final en raison
des données
High Availability
Scalability 17
Caractéristiques de Hadoop (5/6)
Easy to Use
Economic
18
Caractéristiques de Hadoop (6/6)
Data Locality
19
Quels sont les Quatre Modules de Base de Apache Hadoop ? (1/2)
Les éléments de base de Hadoop sont les suivants :
Architecture de YARN
20
Quels sont les Quatre Modules de Base de Apache Hadoop ? (2/2)
3) MapReduce
MapReduce est un modèle de programmation qui a d'abord été utilisé par Google pour indexer ses opérations de
recherche. Suivant cette logique, cet élément exécute des algorithmes pour décomposer des données en datasets plus
petits. MapReduce s'appuie sur deux fonctions : Map() et Reduce(), qui analysent les données rapidement et
efficacement.
La fonction Map regroupe, filtre et trie plusieurs datasets en parallèle et génère des tuples (paires key value). La
fonction Reduce agrège ensuite les données de ces tuples pour produire le résultat souhaité.
4) Hadoop Common : Bibliothèques et utilitaires Java requis par d'autres modules Hadoop
21
Quels sont les Différents Outils de l‘Ecosystème Hadoop ?
Hadoop n'est pas seulement une application, c'est surtout une
plate-forme dont les différents éléments intégrés permettent le
stockage et le traitement de données distribuées. L'ensemble de
ces éléments forme « Ecosystème de Hadoop ».
Hive est un système de data warehousing qui permet d'interroger les gros datasets présents dans le HDFS. Avant Hive,
les développeurs étaient confrontés au défi de créer des tâches MapReduce complexes pour interroger les données
Hadoop. Hive utilise la langage HQL (Hive Query Language), dont la syntaxe est semblable à celle de SQL. La plupart
des développeurs ayant l'habitude des environnements et du langage SQL, ils sont rapidement à l'aise avec Hive.
L'un des avantages de Hive est que l'interface entre l'application et le HDFS est assurée par un pilote JDBC/ODBC. Ce
pilote affiche le système de fichiers Hadoop sous forme de tables et convertit le HQL en travaux MapReduce (et vice-
versa). Les développeurs et les administrateurs de bases de données bénéficient ainsi du meilleur des deux mondes : les
avantages du traitement par lots des gros datasets et la possibilité de formuler des requêtes simples dans un
environnement familier. Développé à l'origine par l'équipe Facebook, Hive est aujourd'hui une technologie open
source.
Pig, développé initialement par Yahoo!, est semblable à Hive : il élimine la nécessité de créer des fonctions
MapReduce pour interroger le HDFS. Comme c'est le cas avec HQL, le langage Pig (« Pig Latin ») est très proche du
SQL. Pig Latin est une couche de langage pour les flux de données qui repose sur MapReduce.
Pig dispose également d'un environnement d'exécution qui s'interface avec HDFS. Les scripts écrits des langages tels
que Java ou Python peuvent également être intégrés dans Pig.
23
Composants Hadoop : Pig, Hive, et Flume
Hive vs Pig
Bien que Pig et Hive soient dotés de fonctionnalités similaires, ils peuvent être plus ou moins efficaces dans différents
scénarios.
Pig est utile dans la phase de préparation des données, car il peut exécuter très facilement des jointures et requêtes
complexes. Par ailleurs, il fonctionne très bien avec différents formats de données, y compris semi-structurées et non
structurées. Le langage Pig Latin est proche du SQL, mais il présente suffisamment de différences pour qu'un temps de
formation soit nécessaire.
Hive fonctionne bien avec les données structurées, et il est donc plus efficace pour les opérations de data warehousing.
Hive est utilisé côté serveur du cluster.
Les chercheurs et programmeurs ont tendance à utiliser Pig côté client du cluster, alors que les utilisateurs de
Business Intelligence (par exemple, les analystes de données) constatent généralement que Hive est mieux adapté.
Flume est un outil spécialisé dans l'importation des big data et qui agit comme un « messager » entre différentes sources
de données et le HDFS. Il peut collecter, agréger et transmettre en streaming vers le HDFS des volumes considérables de
données de logs ou d'événements générés par des applications telles que des sites de médias sociaux, des applications IoT et
des portails d'e-commerce.
Flume présente les caractéristiques suivantes :
o A une architecture distribuée.
o Assure des transferts de données fiables.
o Est tolérant aux incidents.
o Possède la souplesse de collecter les données par lots ou en temps réel.
o Si nécessaire, peut être mis à l'échelle horizontalement pour gérer plus de trafic.
Les sources de données communiquent avec les agents Flume : chaque agent est associé à une source, un canal et un «
sink ». La source collecte les données en provenance d'un expéditeur (sonder), le canal stocke les données temporairement
et le sink transfère les données à la destination, à savoir un serveur Hadoop. 24
Composants Hadoop : Sqoop & HBase
Sqoop est également (comme Flume décrit précédemment) un outil pour l'importation des données. Alors que Flume
travaille sur des données non structurées ou semi-structurées, Sqoop est utilisé pour exporter et importer des données
à partir de bases de données relationnelles. Comme la plupart des données d'entreprise sont stockées dans des bases
relationnelles, Sqoop est utilisé pour importer ces données dans Hadoop pour que les analystes puissent les examiner.
Pour exporter et importer des données, les administrateurs et développeurs de bases de données disposent d'une interface
en ligne de commande (CLI) très simple. Sqoop convertit les commandes au format MapReduce et les envoie au HDFS
via YARN. Tout comme Flume, Sqoop est tolérant aux incidents et peut exécuter des opérations concurrentes.
HBase est une base de données non relationnelles en colonnes qui s'installe en surcouche du HDFS. L'un des défis du
HDFS est qu'il est limité au traitement par lots. Autrement dit, pour les requêtes interactives simples, les données
doivent quand même être traitées par lots, ce qui entraîne une latence élevée.
HBase contourne cette situation en supportant les requêtes portant sur une seule ligne, y compris dans les tables les plus
volumineuses, ce qui réduit considérablement les temps de latence. Ce processus fait appel à des tables de hachage en
interne ; il est modélisé sur Google BigTable qui permet d'accéder au système de fichiers Google (GFS).
HBase est évolutif, réagit efficacement aux incidents (par exemple, si un nœud tombe en panne) et il peut traiter les
données non structurées et les données semi-structurées. C'est donc la solution idéale pour interroger de gros gisements
de données à des fins d'analyse. 25
Composants Hadoop : Zookeeper & kafka
Zookeeper – Coordination des applications distribuées
Zookeeper est un service qui coordonne les applications distribuées. Dans le framework Hadoop, il agit comme un
outil d'administration avec un registre centralisé qui contient des informations sur le cluster de serveurs distribués
dont il assure la gestion. Les principales fonctionnalités de Zookeeper sont les suivantes :
o Gestion des informations de configuration (état partagé des données de configuration)
o Service de nommage (affectation d'un nom à chaque serveur)
o Service de synchronisation (gestion des blocages, compétition entre ressources et incohérences entre données)
o Élection d'un leader (élit un leader parmi les serveurs par consensus)
Le cluster de serveurs sur lequel tourne le service Zookeeper s'appelle un « ensemble ». L'ensemble élit un chef « chef
de cluster », les autres clusters se comportant comme des followers. Toutes les opérations d'écriture des clients doivent
transiter par le serveur leader, alors que les opérations de lecture peuvent être transmises directement à n'importe quel
autre serveur.
Zookeeper offre d'excellentes qualités de fiabilité et de résilience grâce à la synchronisation en mode dégradé (fail-
safe), à l'atomicité des opérations et à la sérialisation des messages.
Kafka Apache Kafka est une plateforme distribuée de diffusion de données en continu, capable de publier, stocker,
traiter et souscrire à des flux d’enregistrement en temps réel. Elle est conçue pour gérer des flux de données provenant
de plusieurs sources et les fournir à plusieurs utilisateurs.
L’utilisation d’applications, de services Internet, d’applications serveur et autres représente pour les développeurs un
bon nombre de défis. L’un des défis fréquemment rencontrés est de pouvoir assurer une transmission sans faille et un
traitement rapide et efficace des flux de données. Le logiciel de messagerie et de streaming Apache Kafka est un
logiciel capable d’assumer facilement ces deux fonctions. Ce logiciel open source, développé à l’origine comme une
file d’attente pour les messages destinés à la plateforme LinkedIn, est un pack complet permettant l’enregistrement, la
transmission et le traitement de données.
26
Zoom sur Hadoop Distributed File System (HDFS)
Architecture de machines HDFS :
NameNode :
- Gère l’espace de noms, l’arborescence du système de
fichiers et les métadonnées des fichiers et des répertoires.
SecondaryNameNode :
- Gère l’historique des modifications dans le système de
fichiers.
- Permet la continuité du fonctionnement du cluster en cas de
panne du NameNode principal.
DataNode :
- Stocke et restitue les blocs de données.
27
Zoom sur Hadoop Map Reduce (1/3)
28
Zoom sur Hadoop Map Reduce (2/3)
1) Choisir une manière de découper les données afin que Map soit parallélisable
2) Choisir la clé à utiliser pour notre problème
3) Écrire le programme pour l’opération Map
4) Écrire le programme pour l’opération Reduce
29
Zoom sur Hadoop Map Reduce (3/3)
Composants d’un processus Map Reduce : 5) Group: Regroupement (ou shuffle) des paires
de clés communes. Réalisé par un tri distribué
1) Split: Divise les données d’entrée en flux parallèles à
sur les différents noeuds du cluster.
fournir aux noeuds de calcul.
2) Read: Lit les flux de données en les découpant en unités à 6) Partition: Distribue les groupes de paires sur les
traiter. Par défaut à partir d’un fichier texte: unité = ligne. différents noeuds de calcul pour préparer
l’opération de reduction. Généralement effectué
3) Map: Applique sur chaque unité envoyée par le Reader un par simple hashage et découpage en morceaux de
traitement de transformation dont le résultat est stocké dans des données de tailles égales (dépend du nombre de
paires <clé,valeur>. noeuds Reduce).
7) Reduce: Applique un traitement de réduction à
4) Combine: Composant facultatif qui applique un traitement chaque liste de valeurs regroupées.
de reduction anticipé à des fins d’optimisation. Cette étape
ne doit pas perturber la logique de traitement. 8) Write: Écrit le résultat du traitement dans le(s)
fichier(s) résultats(s). On obtient autant de fichiers
resultats que l’on a de noeuds de reduction.
30
Comment Hadoop permet le Traitement du Big Data ?
Le traitement du Big Data par Hadoop repose sur l’utilisation de la capacité de stockage et de
traitement distribués de clusters. Il s’agit d’une base pour la création d’applications Big Data.
Les applications peuvent collecter des données de différents formats et les stocker dans le cluster
Hadoop par le biais d’une API se connectant au NameNode. Le NameNode capture la structure de
fichiers, et réplique des morceaux entre les différents DataNodes pour le traitement parallèle.
Les requêtes de données sont effectuées par MapReduce, qui répertorie aussi tous les DataNodes
et réduit les tâches liées aux données dans le HDFS. Les tâches Map sont effectuées sur chaque
noeud, et les réducteurs sont exécutés pour lier les données et organiser le résultat final.
31
Quels sont les cas d'usage de Hadoop ?
Hadoop offre de multiples possibilités. L’un de ses principaux cas d’usage est le traitement du Big
Data. Ce framework est en effet adapté pour le traitement de vastes volumes de données, de l’ordre de
plusieurs petabytes.
Un autre cas d’usage majeur de Hadoop est le stockage de données diverses. La flexibilité de ce
framework permet de prendre en charge de nombreux types de données différents. Il est possible de
stocker des textes, des images, ou même des vidéos. La nature du traitement de données peut être
sélectionnée en fonction des besoins. On retrouve ainsi la flexibilité d’un Data Lake (Un Data Lake ou
lac de données est une plateforme permettant le stockage et l'analyse de données sans contrainte de
type ou de structure).
En outre, Hadoop est utilisé pour le traitement parallèle des données. L’algorithme MapReduce permet
d’orchestrer le traitement parallèle des données stockées. Cela signifie que plusieurs tâches peuvent
être effectuées simultanément.
32
Comment les entreprises utilisent-elles Hadoop ? (1/2)
Des entreprises de toutes les industries utilisent Hadoop pour le traitement du Big Data. Le
framework permet par exemple de comprendre les besoins et les attentes des clients. De grandes
entreprises des industries de la finance et des réseaux sociaux utilisent cette technologie pour
comprendre les attentes des consommateurs en analysant le Big Data sur leur activité, sur leur
comportement.
À partir de ces données, il est possible de proposer des offres personnalisées aux clients. C’est tout le
principe de la publicité ciblée sur les réseaux sociaux ou des moteurs de recommandation sur les
plateformes de e-commerce.
Par ailleurs, Hadoop permet aussi d’optimiser les processus de l’entreprise. À partir des données de
transaction et celles des clients, l’analyse de tendance et l’analyse prédictive aide les entreprises à
personnaliser leurs produits et leurs stocks pour accroître les ventes. Ceci permet de prendre de
meilleures décisions et générer des profits plus importants.
En analysant les données sur le comportement et les interactions des employés, il est aussi possible
d’améliorer l’environnement de travail.
33
Comment les entreprises utilisent-elles Hadoop ? (2/2)
Dans l’industrie de la santé, les institutions médicales peuvent utiliser Hadoop pour surveiller la vaste
quantité de données liées aux problèmes de santé et aux résultats des traitements médicaux. Les
chercheurs peuvent analyser ces données afin d’identifier des problèmes de santé et choisir des
traitements adéquats.
Les traders et le monde de la finance utilisent aussi Hadoop. Son algorithme permet de scanner les
données de marché pour identifier des opportunités et des tendances saisonnières. Les entreprises de
la finance peuvent automatiser les opérations grâce au framework.
Par ailleurs, Hadoop est utilisé pour l’Internet des Objets. Ces appareils requièrent des données pour
fonctionner correctement. Les fabricants utilisent donc Hadoop en guise de Data Warehouse pour
stocker les milliards de transactions enregistrées par l’IoT. Le streaming de données peut ainsi être
géré correctement.
Il ne s’agit là que de quelques exemples. En outre, Hadoop est utilisé dans le domaine du sport et de la
recherche scientifique.
34