Gestion et Traitement BIG DATA Année universitaire 2020/2021 3ème année cycle d
Gestion et Traitement BIG DATA Année universitaire 2020/2021 3ème année cycle d’ingénieur Ingénierie Informatique et Technologies Emergentes (2ITE) Prof. HANINE Mohamed Laboratoire Télécommunications, Réseaux et Informatique (TRI) ENSA Eljadida, Université Chouaib Doukkali, Maroc Email: m.hanine.ensaj@gmail.com 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 9 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 14 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 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 uploads/Ingenierie_Lourd/ chapitre-2-hadoop-part1.pdf
Documents similaires










-
18
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 20, 2021
- Catégorie Heavy Engineering/...
- Langue French
- Taille du fichier 8.7736MB