Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chapitre 2 Hadoop-Part1

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

3ème année cycle d’ingénieur

Ingénierie Informatique et Technologies Emergentes (2ITE)

Gestion et Traitement
BIG DATA

Prof. HANINE Mohamed


Laboratoire Télécommunications, Réseaux et Informatique (TRI)
ENSA Eljadida, Université Chouaib Doukkali, Maroc
Email: m.hanine.ensaj@gmail.com Année universitaire 2020/2021
Planning de Semestre
• Séance 1 : Introduction au BIG DATA
• Séance 2 : Hadoop + TP 1 : Installation + Manipulation HDFS
• Séance 3 : Hadoop + TP 2 : Solution Cloudera + MapReduce (en Java)
• Séance 4 : Hadoop + TP 3 : Solution HortonWorks + MapReduce ( en Python)
• Séance 5 : Rappel sur NoSQL +MapReduce avec MongoDB et/ou Scala + TP 4
• Séance 6 : Contrôle mi-semestre (Théorique et Pratique)
• Séance 7 : HBase + TP 5
• Séance 8 : PIG + TP 6
• Séance 9 : HIVE + TP 7
• Séance 10 :Exposés + Mini Projet
Examen Final

Année universitaire 2020/2021


Chapitre 2: Présentation du Framework
Apache Hadoop
Objectifs:
• Présentation de l’architecture Hadoop.
• Découvrir les concepts et les enjeux liés à Hadoop
• Comprendre le fonctionnement du Framework et de ses principaux composants
• Installer le Framework et le gérer

Année universitaire 2020/2021


Plan du chapitre 2 – Hadoop
• Définition et Historique
• Modes de fonctionnement et de l’utilisation
• Composants fondamentaux
• Principes de fonctionnement de Hadoop Distributed File System (HDFS).
• Principes de fonctionnement de MapReduce.
• Versions de Hadoop

Année universitaire 2020/2021


Rappel
• C’est quoi:
• Cluster
• Traitement par lot (batch processing)
• Traitement distribué (calcul distribué) (Parrallel Processing)
• Traitement de flux (Stream processing)
• Traitement hybride (hybride processing)
• Scalabilité (Architecture Scalable)
• …..

Année universitaire 2020/2021


Hadoop: Définition
• Hadoop est une plateforme (framework) open source conçue pour réaliser d'une façon
distribuée des traitements sur des volumes de données massives, de l'ordre de plusieurs
pétaoctets. Ainsi, il est destiné à faciliter la création d'applications distribuées. Il s'inscrit donc
typiquement sur le terrain du Big Data.

• Hadoop est géré sous l’égide de la fondation Apache, il est écrit en Java.

• Modèle simple pour les développeurs: il suffit de développer des tâches Map Reduce, depuis
des interfaces simples accessibles via des librairies dans des langages multiples (Java, Python,
C/C++...).

Année universitaire 2020/2021


Hadoop: Définition
Hadoop assure les critères des solutions Big Data:
• Performance: support du traitement d'énormes data sets (millions de fichiers, Go à To de
données totales) en exploitant le parallélisme.
• Economie: contrôle des coûts en utilisant de matériels de calcul de type standard.
• Evolutivité (scalabilité): un plus grand cluster devrait donner une meilleure
performance.
• Tolérance aux pannes: la défaillance d'un nœud ne provoque pas l'échec de calcul.
• Parallélisme de données: le même calcul effectué sur toutes les données.

Année universitaire 2020/2021


Un peu d'histoire
• Dec 2004 – Google publie ses papiers GFS, MR
• Juil 2005 – Nutch utilise une implémentation de MapReduce
• Jan 2006 – Doug Cutting rejoint Yahoo!
• Fév 2006 – Hadoop devient un nouveau sous-projet de Lucene (Moteur de recherche)
• Avr 2007 – Yahoo! exploite un cluster Hadoop de 1000 nœuds
• Jan 2008 – Hadoop devient un "Apache Top Level Project"
• Fev 2008 – Yahoo! utilise Hadoop pour calculer les index de son moteur de recherche en
production
• Juil 2008 – un cluster de 4 000 nœuds
• ...
• Juin 2011 – 42 000 nœuds Hadoop chez Yahoo!

Année universitaire 2020/2021


Qui utilise Hadoop

Année universitaire 2020/2021


Hadoop: Modes de l’utilisation

Année universitaire 2020/2021


Hadoop: modes de fonctionnement
• Les modes de fonctionnement de Hadoop sont trois :
• le mode local (local mode) : En mode local, Hadoop fonctionne sur une seule station
de travail et les 5 daemons de Hadoop (NameNode, SecondaryNameNode,
DataNode, JobTracker et TaskTracker) s’exécutent tous dans la même JVM.
• le mode pseudo-distribué (pseudo-distributed mode) : En mode pseudo-distribué,
Hadoop fonctionne sur une seule station de travail, mais chacun des 5 deamons
s’exécute dans sa propre JVM.
• le mode totalement distribué (fully-distributed mode) : Le mode totalement distribué
correspond au fonctionnement d’un vrai cluster Hadoop, avec plusieurs stations de
travail interconnectées en réseau. chacun des 5 deamons s’exécute dans sa propre
JVM.

Année universitaire 2020/2021


Hadoop: Composants fondamentaux
• Hadoop est constitué de deux grandes parties :
• 1) Hadoop Distibuted File System – HDFS : destiné pour le stockage
distribué des données
• 2) Distributed Programing Framework - MapReduce : destiné pour le
traitement distribué des données.

HADOOP

HDFS MapReduce

Année universitaire 2020/2021


Hadoop: HDFS
• HDFS (Hadoop Distributed File System) est un système de fichiers :
• Composant de Hadoop, inspiré de GoogleFS et écrit en Java.
• Distribué, Tolérant aux pannes, Extensible, Portable
• Conçu pour stocker de très gros volumes de données sur un grand nombre de machines.
• HDFS permet l'abstraction de l'architecture physique de stockage, afin de
manipuler un système de fichiers distribué comme s'il s'agissait d'un disque dur unique.
• HDFS reprend de nombreux concepts proposés par des systèmes de fichiers classiques
comme ext2 pour Linux ou FAT ou NTFS pour Windows.

Année universitaire 2020/2021


Hadoop: HDFS
• Un fichier mydata.txt est enregistré dans HDFS, il est décomposé en grands
blocs
• Taille par défaut 64 Mo
• Chaque bloc a un nom unique: blk_1, blk_2...
• Distribué et scalable
• Réplication : Si l’un des nœuds a un problème, les données seront perdues
• Hadoop réplique chaque bloc 3 fois
• Il choisit 3 nœuds au hasard, et place une copie du bloc dans chacun d’eux

14

Année universitaire 2020/2021


Hadoop: Arhitecture HDFS (1)
Une architecture de machines HDFS (aussi appelée cluster HDFS) repose sur 2 types
de composants majeurs : NameNode et DataNode

Année universitaire 2020/2021


Hadoop: Arhitecture HDFS (1)
- NameNode (nœud de nom) :
Un Namenode est un service central (généralement appelé aussi maître) qui s'occupe de
gérer l'état du système de fichiers. Il maintient l'arborescence du système de fichiers et
les métadonnées de l'ensemble des fichiers et répertoires d'un système Hadoop. Le
Namenode a une connaissance des Datanodes dans lesquels les blocs sont stockés.

Année universitaire 2020/2021


Hadoop: Arhitecture HDFS (1)

- Datanode :
• Précédemment, nous avons vu qu'un Datanode contient les blocs de données. En effet,
il stocke les blocs de données lui-même. Il y a un DataNode pour chaque machine au
sein du cluster. Les Datanodes sont sous les ordres du Namenode et sont surnommés les
Workers. Ils sont donc sollicités par les Namenodes lors des opérations de lecture et
d'écriture.

Année universitaire 2020/2021


HDFS : Écriture d'un fichier
• Si on souhaite écrire un fichier au sein de HDFS, on va utiliser la commande principale
de gestion de Hadoop: hadoop, avec l'option fs. Mettons qu'on souhaite stocker le fichier
page_livre.txt sur HDFS.
• Le programme va diviser le fichier en blocs de 64 Mo (ou autre, selon la configuration) –
supposons qu'on ait ici 3 blocs. Il va ensuite annoncer au NameNode: « Je souhaite
stocker ce fichier au sein de HDFS, sous le nom page_livre.txt ».
• Le NameNode va alors indiquer au programme qu'il doit stocker le bloc 1 sur le
DataNode N°1, le bloc 2 sur le DataNode N° 3, et le bloc 3 sur le DataNode N° 5.
• Le client hadoop va alors contacter directement les DataNodes concernés et leur
demander de stocker les deux blocs en question. Par ailleurs, les DataNodes s'occuperont
– en informant le NameNode – de répliquer les données entre eux pour éviter toute perte
de données.

Année universitaire 2020/2021


HDFS : Écriture d'un fichier

Année universitaire 2020/2021


HDFS : Lecture d'un fichier
• Si on souhaite lire un fichier au sein de HDFS, on utilise là aussi le client Hadoop.
Mettons qu'on souhaite lire le fichier page_livre.txt.
• Le client va contacter le NameNode, et lui indiquer « Je souhaite lire le fichier
page_livre.txt ». Le NameNode lui répondra par exemple « Il est composé de deux blocs.
Le premier est disponible sur le DataNode 3 et 2, le second sur le DataNode 1 et 3 ».
• Là aussi, le programme contactera les DataNodes directement et leur demandera de lui
transmettre les blocs concernés. En cas d'erreur/non réponse d'un des DataNode, il passe
au suivant dans la liste fournie par le NameNode.

Année universitaire 2020/2021


HDFS : Lecture d'un fichier

Année universitaire 2020/2021


Hadoop: Arhitecture HDFS (2)
Secondary Namenode :
• Le Namenode dans l'architecture Hadoop est un point unique de
défaillance (Single Point of Failure en anglais). Si ce service est
arrêté, il n'y a pas un moyen de pouvoir extraire les blocs d'un fichier
donné. Pour répondre à cette problématique, un Namenode secondaire
appelé Secondary Namenode a été mis en place dans l'architecture
Hadoop version2. Son fonctionnement est relativement simple
puisque le Namenode secondaire vérifie périodiquement l'état du
Namenode principal et copie les métadonnées. Si le Namenode
principal est indisponible, le Namenode secondaire prend sa place.

Année universitaire 2020/2021


HDFS : La Manipulation de Hadoop ‘fs’
• Comme indiqué plus haut, la commande permettant de stocker ou extraire des fichiers
de HDFS est l'utilitaire console Hadoop, avec l'option fs. Il réplique globalement les
commandes systèmes standard Linux, et est très simple à utiliser:
• hadoop fs -put livre.txt /data_input/livre.txt
 Pour stocker le fichier livre.txt sur HDFS dans le répertoire /data_input.
• hadoop fs -get /data_input/livre.txt livre.txt
 Pour obtenir le fichier /data_input/livre.txt de HDFS et le stocker dans le fichier local
livre.txt.
• hadoop fs -mkdir /data_input
 Pour créer le répertoire /data_input
• hadoop fs -rm /data_input/livre.txt
 Pour supprimer le fichier /data_input/livre.txt

• D'autres commandes usuelles: -ls, -cp, -rmr, -du, etc...

Année universitaire 2020/2021


Hadoop : Versions
• Hadoop 0.X
• Hadoop 1.X
• Hadoop 2.X
• Hadoop 3.X

Année universitaire 2020/2021


Hadoop : Versions
• Différence entre version Hadoop 1.X et 2.X
• De la même façon que l’évolution de MapReduce 2, nous trouvons quelques
améliorations de HDFS dans la 2ème version de Hadoop. Ces améliorations ont été
déjà expliqué dans la partie consacrée à HDFS.
• Le SPOF du Namenode a disparu
• L’ancienne architecture d’Hadoop imposait l’utilisation d’un seul Namenode, composant
central contenant les métadonnées du cluster HDFS. Ce Namenode était un SPOF (Single
Point Of Failure).
• Dans Hadoop 2, on peut mettre deux Namenodes en mode actif/attente. Si le Namenode
principal est indisponible, le Namenode secondaire prend sa place.

Année universitaire 2020/2021


Questions

• Présentation sur Cloudera vs HortonWorks vs MapR


• Présentation sur la différence entre Data Scientist vs Data Analyst vs Data Engineer

Année universitaire 2020/2021

Vous aimerez peut-être aussi