Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Chapitre 2 hadoop

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
TP1 Big Data - MapReduce
TP1 Big Data - MapReduce
Chargement dans…3
×

Consultez-les par la suite

1 sur 39 Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (18)

Similaire à Chapitre 2 hadoop (20)

Publicité

Plus récents (20)

Publicité

Chapitre 2 hadoop

  1. 1. Big Data Mouna TORJMEN KHEMAKHEM Ecole Nationale d’Ingénieurs de Sfax (ENIS) 2017-2018
  2. 2. Chapitre 2 Hadoop Mouna TORJMEN KHEMAKHEM
  3. 3. Plan du chapitre Présentation et Historique de Hadoop HDFS MAP-REDUCE Architecture Hadoop YARNYARN Hadoop2 Mouna TORJMEN KHEMAKHEM
  4. 4. Projet open source d’Apache: http://hadoop.apache.org/ Système de fichiers distribué et scalable (HDFS) Traitement distribué sur plusieurs nœuds Ecrit en Java, portable Conçu par Doug Cutting en 2004 Hadoop: Présentation (1/2) Conçu par Doug Cutting en 2004 4444 Mouna TORJMEN KHEMAKHEM
  5. 5. Utilisation simple pour les développeurs: développer seulement des tâches Map-Reduce utilisation des interfaces simples à travers des librairies langages multiples (Java, Python, C/C++...). Hadoop: Présentation (2/2) S‘occupe de toutes les problématiques liées au calcul distribué: accès et partage des données tolérance aux pannes répartition des tâches aux différents nœuds du cluster le développeur s’occupe seulement de la tâche Map- Reduce. 5555 Mouna TORJMEN KHEMAKHEM
  6. 6. Hadoop : Historique (1/2) 2002: Doug Cutting (directeur archive.org) et Mike Cafarella (étudiant) développent Nutch, un moteur de recherche Open Source exploitant le calcul distribué. L'implémentation peut tourner seulement sur quelques machines et a plusieurs problèmes liés à l'accés et le partage de fichiers. 2003/2004: le département de recherche de Google publie deux2003/2004: le département de recherche de Google publie deux whitepapers: (1) sur GFS (un système de fichier distribué) et (2) sur le paradigme Map/Reduce pour le calcul distribué. 2004: Doug Cutting et Mike Cafarella développent un framework inspiré des papiers de Google et portent leur projet Nutch sur ce framework. 6666 Mouna TORJMEN KHEMAKHEM
  7. 7. Hadoop : Historique (2/2) 2006: Doug Cutting (de Yahoo) travaille sur une amélioration de l’indexation du moteur de recherche de Yahoo et créé une nouvelle version en tant que projet Open Source de la fondation Apache. Ce projet est appelé Hadoop : le nom d'un éléphant en peluche de son fils. Un cluster peut comporter de 5 à 20 machines. 2008: Hadoop est utilisé par le moteur de recherche de Yahoo et par d’autres départements de l'entreprise. 2011: Hadoop est utilisé par plusieurs entreprises et universités dans le monde Le cluster Yahoo comporte 42.000 machines.7777 Mouna TORJMEN KHEMAKHEM
  8. 8. Hadoop est composé de deux grandes parties : Hadoop Distibuted File System – HDFS : destiné pour le stockage distribué des données Hadoop: Composants fondamentaux Distributed Programing Framework - MapReduce : destiné pour le traitement distribué des données. Stockage Traitement 8888 Mouna TORJMEN KHEMAKHEM
  9. 9. • un système de fichiers distribué • inspiré de GFS • écrit en Java. • tolérant aux pannes • SGF du type Write Once Read Many (WORM) : on y HDFS (Hadoop Distributed File System) • SGF du type Write Once Read Many (WORM) : on y écrit une fois le fichier, puis on y accède plusieurs fois. • HDFS se base sur le principe de Maître/Esclave 9999 Mouna TORJMEN KHEMAKHEM
  10. 10. FichierdiviséenblocsFichierdiviséenblocs Bloc 1Bloc 1 Bloc 2Bloc 2 DataNode 1DataNode 1 DataNode 2DataNode 2 DataNode 3DataNode 3 NameNodeNameNode Fonctionnement du HDFS Secondary NameNode Secondary NameNode FichierdiviséenblocsFichierdiviséenblocs Bloc 3Bloc 3 Bloc 2Bloc 2 Bloc 4Bloc 4 DataNode 1DataNode 1 DataNode 2DataNode 2 DataNode 3DataNode 3 HDFS HDFS HDFS Bloc 1Bloc 1 Bloc 2Bloc 2 Bloc 3Bloc 3 Bloc 4Bloc 4 Stockage et duplication de blocs en HDFS 10101010 Mouna TORJMEN KHEMAKHEM
  11. 11. Taille de blocs: En système de fichier classique: 4 Ko en HDFS: 64 Mo: par défaut Fonctionnement du HDFS 64 Mo: par défaut Possibilité de configuration en : 128 Mo, 256 Mo, 512 Mo ou 1 Go. Réduire le temps d'accès à un bloc 11111111 Mouna TORJMEN KHEMAKHEM
  12. 12. Taille de blocs: Fonctionnement du HDFS 12121212 Mouna TORJMEN KHEMAKHEM
  13. 13. • Duplication En phase d'écriture, chaque bloc correspondant au fichier est répliqué sur des nœuds distincts du cluster. En phase de lecture, si un bloc est Fonctionnement du HDFS En phase de lecture, si un bloc est indisponible sur un nœud, des copies de ce bloc seront disponibles sur d'autres nœuds. L’utilisateur peut facilement configurer le nombre de réplication (par défaut 3). 13131313 Mouna TORJMEN KHEMAKHEM
  14. 14. NameNode: nœud maître gère l'espace de noms, l'arborescence du système de fichiers et les métadonnées des fichiers et des répertoires. Il centralise la localisation des blocs de données répartis dans le cluster. Fonctionnement du HDFS le cluster. Il connait les DataNodes dans lesquels les blocs sont stockés Les différents types de métadonnées : liste des fichiers liste des blocs pour chaque fichier liste des DataNodes pour chaque bloc Attributs de fichiers, dernier accès, nombre de réplication. 14141414 Mouna TORJMEN KHEMAKHEM
  15. 15. Secondary NameNode Le NameNode est un point unique de défaillance (Single Point of Failure): en cas de panne, perte des blocs d’un fichier donné. le NameNode secondaire vérifie périodiquement l’état du Fonctionnement du HDFS le NameNode secondaire vérifie périodiquement l’état du NameNode principal et fait une copie des métadonnées En cas de panne du NameNode principal, le NameNode secondaire la remplace. 15151515 Mouna TORJMEN KHEMAKHEM
  16. 16. DataNode : nœud esclave enregistre (écriture) et récupère (lecture) les blocs de données. En lecture, les DateNodes transmettent au client les blocs correspondant au fichier grâce au NameNode. Fonctionnement du HDFS correspondant au fichier grâce au NameNode. En écriture, les DataNodes retournent l’emplacement des blocs créés au NameNode. Chaque DataNode envoie périodiquement au NameNode la liste des blocs de données qu'il contient. 16161616 Mouna TORJMEN KHEMAKHEM
  17. 17. Écriture d'un fichier en HDFS 17171717 Mouna TORJMEN KHEMAKHEM
  18. 18. Lecture d'un fichier en HDFS 18181818 Mouna TORJMEN KHEMAKHEM
  19. 19. Créer un dossier dans HDFS : Commande : hadoop fs -mkdir Exemple : hadoop fs -mkdir /user/monDossier Lister le contenu d’un dossier dans HDFS: Commande : hadoop fs –ls Exemple : hadoop fs -ls /user/monDossier Charger un ou plusieurs fichiers du local à HDFS: Commande : hadoop fs -put Quelques commande en HDFS Commande : hadoop fs -put Exemple : hadoop fs -put /home/monFichier.txt /user/monDossier Exporter un ou plusieurs fichiers de HDFS au local: Commande: hadoop fs -get Exemple : hadoop fs -get /user/monDossier/monFichier.txt /home Supprimer un fichier dans HDFS: Commande : hadoop fs -rm Exemple : hadoop fs -rm /user/monFichier.txt D'autres commandes usuelles: -ls, -cp, -rmr, -du, etc... 19191919 Mouna TORJMEN KHEMAKHEM
  20. 20. MapReduce MapReduce : un modèle de programmation dédié pour la lecture, le traitement et l’écriture de grandes volumes de données.volumes de données. garantit les fonctionnalités suivantes : Parallélisation automatique des programmes à exécuter Gestion transparente du mode distribué. Tolérance aux pannes. 20202020 Mouna TORJMEN KHEMAKHEM
  21. 21. Basé sur deux fonctions : map() : applique une fonction donnée sur chaque éléments d’une liste et retourne une liste. MapReduce Exemple: (mapcar #’round ‘(1.3 2.7 3.4 4.5)) => (1 3 3 4) reduce(): applique une fonction donnée à tous les éléments d’une liste et retourne une liste unique. Exemple: (reduce #’+ ‘(1 2 3 4)) => 10 21212121 Mouna TORJMEN KHEMAKHEM
  22. 22. •Le processus MapReduce est composé de 4 étapes: – Fragmenter (split) les données en entrée en n partitions. – Mapper chacun de ces partitions couples (clé , valeur). – Grouper (shuffle) ces couples (clé , valeur) par clé. – Réduire (reduce) les groupes indexés par clef à une unique MapReduce MounaTORJMEN KHEMAKHEM &Amal ABID – Réduire (reduce) les groupes indexés par clef à une unique paire (clé, valeur). 22222222 Mouna TORJMEN KHEMAKHEM
  23. 23. •Résolution d’un problème avec MapReduce: ProgrammeurProgrammeur -Choix de la méthode de découpage des données -Définition de la clé à utiliser -Développement de l’opération MAP -Développement de l’opération REDUCE MapReduce HadoopHadoop -Développement de l’opération REDUCE -repartition de données -distribution de calcul -groupement par clé … 23232323 Mouna TORJMEN KHEMAKHEM
  24. 24. • But: compter le nombre d’occurrences de chaque mot dans un fichier texte. • Données: un fichier texte sous la forme suivante: Celui qui croyait MapReduce-Exemple 1 • MAP/REDUCE: (clef, valeur)= (mot, 1) Celui qui croyait Ciel ciel croyait Celui ciel qui 24242424 Mouna TORJMEN KHEMAKHEM
  25. 25. MapReduce-Exemple 1 MAP REDUCE POUR MOT dans LIGNE, FAIRE : GENERER COUPLE (MOT; 1) TOTAL=0 RENVOYERTOTAL TOTAL=0 POUR COUPLE dans GROUPE, FAIRE: TOTAL=TOTAL+1 RENVOYERTOTAL 25252525 Mouna TORJMEN KHEMAKHEM
  26. 26. • But: compter le nombre de visiteurs sur chacune des pages d'un site Internet. • Données: des fichiers de logs sous la forme suivante: /index.html [19/Oct/2013:18:45:03 +0200] /contact.html [19/Oct/2013:18:46:15 +0200] MapReduce-Exemple 2 • MAP/REDUCE: (clef, valeur)= (URL, 1) /contact.html [19/Oct/2013:18:46:15 +0200] /news.php?id=5 [24/Oct/2013:18:13:02 +0200] /news.php?id=4 [24/Oct/2013:18:13:12 +0200] /news.php?id=18 [24/Oct/2013:18:14:31 +0200] ...etc... 26262626 Mouna TORJMEN KHEMAKHEM
  27. 27. • But: calculer le total des ventes par magasin (ville) pour l’année courante • Données: des fichiers sous la forme (jour ville produit prix): 01-01-2017 Sfax meuble 200 01-01-2017Tunis vetement 50 02-01-2017 Sfax jouet 20 MapReduce-Exemple 3 • MAP/REDUCE: (clef, valeur)= (magasin, prix) 02-01-2017 Sfax jouet 20 02-01-2017 Sousse vetement 80 02-01-2017Tunis jouet 50 27272727 Mouna TORJMEN KHEMAKHEM
  28. 28. Architecture de Hadoop •Hadoop est basé sur deux serveurs (des daemons): – Le JobTracker: • Coordinateur des taches MapReduce sur le cluster : distribution des opérations Map ou Reduce au TaskTracker. • En communication avec le NameNode Un seul JobTracker par cluster point unique de défaillance (Single Point of Failure).of Failure). – Le TaskTracker: • Exécute les taches (Map ou Reduce) • Envoie des notification au JobTracker (erreur, …) • Communique avec un DataNode Un TaskTracker sur chaque machine esclave du cluster. 28282828 Mouna TORJMEN KHEMAKHEM
  29. 29. Chaque TaskTracker signale son statut continuellement par le biais de « heartbeat ». En cas de défaillance d'un TaskTracker Architecture de Hadoop En cas de défaillance d'un TaskTracker (heartbeat manquant / tâche échouée), le JobTracker redistribue la tâche à un autre nœud. 29292929 Mouna TORJMEN KHEMAKHEM
  30. 30. JobTrackerJobTracker Architecture de Hadoop Name NodeName Node Couche MapReduce Couche HDFS Task Tracker Task Tracker Data NodeData Node Task Tracker Task Tracker Data NodeData Node Couche MapReduce Couche HDFS 30303030 Mouna TORJMEN KHEMAKHEM
  31. 31. Architecture de Hadoop 31313131 Mouna TORJMEN KHEMAKHEM
  32. 32. Evolution de MapReduce:YARN • YARN (Yet-Another-Resource-Negotiator) : – Séparation entre la gestion des ressources et la gestion des tâches Map/Reduce –Allocation des ressources (CPU, mémoire, …) aux applications s’exécutant sur les nœuds à la demande.applications s’exécutant sur les nœuds à la demande. 32323232 Mouna TORJMEN KHEMAKHEM
  33. 33. Ressource Manager (RM) -s’exécute sur le nœud master -ordonnanceur de ressources -s’occupe de gestion de ressources entre plusieurs applications Application Master (AM) -un seul AM par application Architecture de YARN JobTracker RessourceManager ApplicationMaster AM AM -un seul AM par application -s’exécute sur un container Container -créé par le Resource Manager à la demande -s’occupe de l’allocation de ressources sur le noud esclave 33333333 Mouna TORJMEN KHEMAKHEM
  34. 34. Le NodeManager (NM) • S’exécute sur un noeud esclave • En communication avec le Ressource Manager Architecture de YARN RessourceManager ApplicationMasterAM AM NodeManager NM NM 34343434 Mouna TORJMEN KHEMAKHEM
  35. 35. Architecture de YARN Exécution d’une application 35353535 Mouna TORJMEN KHEMAKHEM
  36. 36. Evolution de HDFS : HDFS 2 1. Le SPOF du Namenode a disparu • Dans Hadoop 1: un seul namenode un SPOF (Single Point Of Failure). • Dans Hadoop 2: deux namenodes Si le Namenode principal tombe en panne, le Namenode secondaire le remplace. 2. La fédération HDFS Un namenode correspond à un espace de nommage (namespace). • Dans Hadoop1: un seul namenode par cluster. • Dans Hadoop2: plusieurs namenodes et donc plusieurs namespace sur un même cluster. 36363636 Mouna TORJMEN KHEMAKHEM
  37. 37. Evolution de Hadoop: Hadoop 2 37373737 Mouna TORJMEN KHEMAKHEM
  38. 38. Evolution de Hadoop: Hadoop 2 MounaTORJMEN KHEMAKHEM38383838 Mouna TORJMEN KHEMAKHEM
  39. 39. Erasure coding pour plus de résilience Intégration du technique erasure coding à HDFS pour améliorer la récupération et la fiabilité des données UnYARN renforcé et plus étendu amélioration des capacités de scalabilité des applications distribuées sur plusieurs milliers de nœuds d’un Evolution de Hadoop: Hadoop 3 des applications distribuées sur plusieurs milliers de nœuds d’un cluster 39393939 Mouna TORJMEN KHEMAKHEM

×