Podcast
Questions and Answers
Combien de temps faut-il pour lire 1 To de données à 80 Mb/sec avec 1 disque?
Combien de temps faut-il pour lire 1 To de données à 80 Mb/sec avec 1 disque?
3,4 heures
Quel est le temps requis pour lire 1 To de données avec 10 disques?
Quel est le temps requis pour lire 1 To de données avec 10 disques?
20 minutes
Quel est le temps nécessaire pour lire 1 To de données avec 100 disques?
Quel est le temps nécessaire pour lire 1 To de données avec 100 disques?
2 minutes
Quel est le temps pour lire 1 To de données avec 1000 disques?
Quel est le temps pour lire 1 To de données avec 1000 disques?
Le traitement parallèle des données utilise des __________ pour améliorer l'efficacité.
Le traitement parallèle des données utilise des __________ pour améliorer l'efficacité.
Que représente le HDFS ?
Que représente le HDFS ?
En quelle année a été publiée la première version de Google File System?
En quelle année a été publiée la première version de Google File System?
Qui a introduit MapReduce pour le traitement distribué?
Qui a introduit MapReduce pour le traitement distribué?
Quel framework est associé au traitement distribué dans Hadoop?
Quel framework est associé au traitement distribué dans Hadoop?
Hadoop est écrit en __________.
Hadoop est écrit en __________.
Hadoop ne prend en charge que le traitement par lots.
Hadoop ne prend en charge que le traitement par lots.
Quelle est la taille par défaut d'un bloc dans Hadoop 2.x?
Quelle est la taille par défaut d'un bloc dans Hadoop 2.x?
Quel rôle le NameNode joue-t-il dans HDFS?
Quel rôle le NameNode joue-t-il dans HDFS?
Que fait le Secondary NameNode?
Que fait le Secondary NameNode?
Flashcards
Qu'est-ce que HDFS ?
Qu'est-ce que HDFS ?
Un système de fichiers conçu pour stocker des fichiers volumineux dans un cluster d'ordinateurs pas chers.
Qu'est-ce qu'un cluster dans HDFS ?
Qu'est-ce qu'un cluster dans HDFS ?
Un groupe d'ordinateurs qui fonctionnent ensemble.
Qu'est-ce que WORM dans HDFS ?
Qu'est-ce que WORM dans HDFS ?
Écrire une fois, lire plusieurs fois. Les données sont écrites une fois et fréquemment consultées.
Qu'est-ce que la taille variable des blocs (VBS) ?
Qu'est-ce que la taille variable des blocs (VBS) ?
Signup and view all the flashcards
Qu'est-ce qu'un NameNode ?
Qu'est-ce qu'un NameNode ?
Signup and view all the flashcards
Qu'est-ce que FsImage?
Qu'est-ce que FsImage?
Signup and view all the flashcards
Quel est le but de NameNode ?
Quel est le but de NameNode ?
Signup and view all the flashcards
Que sont les DataNodes ?
Que sont les DataNodes ?
Signup and view all the flashcards
Qu'est-ce que le Heartbeat ?
Qu'est-ce que le Heartbeat ?
Signup and view all the flashcards
Qu'est-ce qu'un Secondary NameNode ?
Qu'est-ce qu'un Secondary NameNode ?
Signup and view all the flashcards
Qu'est ce que MapReduce ?
Qu'est ce que MapReduce ?
Signup and view all the flashcards
Qu'est ce que Data Locality ?
Qu'est ce que Data Locality ?
Signup and view all the flashcards
Que sont les 'Input Splits' ?
Que sont les 'Input Splits' ?
Signup and view all the flashcards
Que sont les tuples dans MapReduce ?
Que sont les tuples dans MapReduce ?
Signup and view all the flashcards
Quel est l'objectif de MapReduce ?
Quel est l'objectif de MapReduce ?
Signup and view all the flashcards
Qu'est-ce qu'un JobTracker ?
Qu'est-ce qu'un JobTracker ?
Signup and view all the flashcards
Qu'est-ce qu'un TaskTracker ?
Qu'est-ce qu'un TaskTracker ?
Signup and view all the flashcards
Qu'est-ce qu'une "task Map" ?
Qu'est-ce qu'une "task Map" ?
Signup and view all the flashcards
Qu'est-ce qu'une "tâche Reduce" ?
Qu'est-ce qu'une "tâche Reduce" ?
Signup and view all the flashcards
Quesque une map fase ?
Quesque une map fase ?
Signup and view all the flashcards
Qu'est-ce que YARN ?
Qu'est-ce que YARN ?
Signup and view all the flashcards
Qu'est-ce qu'un Resource Manger (RM)?
Qu'est-ce qu'un Resource Manger (RM)?
Signup and view all the flashcards
Qu'est ce qu'un Node Manger ?
Qu'est ce qu'un Node Manger ?
Signup and view all the flashcards
Qu'est-ce qu'un container ?
Qu'est-ce qu'un container ?
Signup and view all the flashcards
Qu'est ce que Hive ?
Qu'est ce que Hive ?
Signup and view all the flashcards
Qu'est ce que le hiveQL?
Qu'est ce que le hiveQL?
Signup and view all the flashcards
Quest ce qu'un MetaStore
Quest ce qu'un MetaStore
Signup and view all the flashcards
Qu'est ce que HBase?
Qu'est ce que HBase?
Signup and view all the flashcards
Qu'est ce qu'un Htable?
Qu'est ce qu'un Htable?
Signup and view all the flashcards
Quest ce que Hfile ?
Quest ce que Hfile ?
Signup and view all the flashcards
Quest ce qu'une colonne orienté ?
Quest ce qu'une colonne orienté ?
Signup and view all the flashcards
Qu'est ce que Zookeeper.
Qu'est ce que Zookeeper.
Signup and view all the flashcards
Role de JobTracker?
Role de JobTracker?
Signup and view all the flashcards
Role du taskTracker?
Role du taskTracker?
Signup and view all the flashcards
Quelle partie est obligatoire pour mapReduce?
Quelle partie est obligatoire pour mapReduce?
Signup and view all the flashcards
quel framework utiliser pour manipuler les données ?
quel framework utiliser pour manipuler les données ?
Signup and view all the flashcards
but de yarn?
but de yarn?
Signup and view all the flashcards
Y a t il des limites avec MAPREDUCE?
Y a t il des limites avec MAPREDUCE?
Signup and view all the flashcards
Study Notes
Introduction
- La vitesse de lecture et d'écriture des disques s'est peu améliorée ces dernières années.
- Les disques récents atteignent jusqu'à 760 MB/s, et les SSD peuvent atteindre 1000 MB/s.
- Le temps nécessaire pour lire 1 To de données à 80 Mb/s varie de 3,4 heures avec un disque à 12 secondes avec 1000 disques.
- Le traitement parallèle des données est une solution utilisant le calcul distribué.
- Plusieurs ordinateurs agissent comme un super ordinateur, communiquant et travaillant ensemble.
- Les défis incluent l'hétérogénéité, l'ouverture, l'évolutivité, la sécurité, la concurrence, la tolérance aux pannes et la transparence.
Hadoop Historique
- 2003 : Google a créé un système de fichiers distribué pour gérer de grands volumes de données, appelé « Google File System ».
- 2004 : Mike Cafarella et Doug Cutting ont commencé le programme open source Nutch, un moteur de recherche distribué.
- Nutch utilisait un système de fichiers distribué (NDFS) pour indexer plus d'un milliard de pages Web.
- 2004 : Google a présenté MapReduce pour le traitement distribué.
- 2005 : MapReduce a été implémenté dans Nutch, et tous les principaux algorithmes fonctionnaient avec MapReduce sur des fichiers gérés par NDFS.
- 2006 : Le projet Hadoop a succédé à Nutch et est devenu indépendant de Lucene.
- 2006 : Doug Cutting a rejoint Yahoo!, qui a investi massivement pour faire de Hadoop un système à l'échelle du Web.
- Mai 2006 : Yahoo ! a déployé un cluster Hadoop de 300 nœuds pour son index de recherche.
- 2008 : Yahho ! a généré son index de recherche à l'aide d'un cluster Hadoop de 900 nœuds
- Mai 2009 : Yahoo ! a utilisé son cluster Hadoop pour traiter 1 To en 62 secondes en utilisant 1 460 nœuds.
- Juin 2009 : Yahoo ! a rendu le code source de Hadoop public.
- Septembre 2009 : Doug Cutting a rejoint Cloudera.
L'écosystème Hadoop
- Hadoop est basé sur :
- MapReduce/YARN : un cadre de travail pour le traitement distribué
- HDFS : stockage distribué
- Hadoop est écrit en Java et sous License Apache
- Plusieurs projets sont liés à Hadoop, formant l'écosystème Hadoop.
Écosystème Hadoop : Composants et outils
- Composants de base : HDFS – MapReduce/Yarn
- D'autres outils sont existants pour :
- Simplifier les opérations de traitement des données qui existent.
- La gestion et la coordination de la plateforme.
- La surveillance du cluster.
- Pig est une plateforme de haut niveau pour le traitement des données.
- Pig est basé sur un langage de script appelé Pig Latin.
- Hive est un environnement de haut niveau pour le traitement des données basé sur un langage proche de SQL (Hive QL).
- R Connectors permet d'accéder à HDFS et d'exécuter des requêtes Map/Reduce à partir du langage R.
- Mahout est une bibliothèque pour le Machine learning et des mathématiques.
- Oozie est un outil permettant de planifier les tâches MapReduce (Java, Python, Pig, Hive, etc.) en définissant des flux de travail.
- Hbase est une base de données NoSQL orientée colonnes.
- Sqoop permet la lecture et l'écriture de données à partir de bases de données externes.
- Flume collecte les journaux et les stocke dans HDFS.
- Ambari est un outil de gestion et de surveillance des clusters.
- Zookeeper fournit un service centralisé pour maintenir les informations de configuration, le nommage et la synchronisation distribuée.
Hadoop Dans un cadre professionel
- Hadoop est utilisé dans l'Analyses en temps réel via : Connecteurs, Streams, et Landing and Analytics Sandbox Zone
- Hadoop avec sa Zone d'entreposage connectée à la zone d'analyse et aux zone de reporting
- Zone d'analyse : Hadoop, MapReduce, Hive/HBase, Documents
- Zone d'entreposage : Enterprise Warehouse, Data Marts
- Zone de rapport : BI, Analyse prédictive, ETL, Gouvernance des données, Visualisation
- Hadoop connecte les connecteurs, les flux à atterrissage et la zone de test d'analyse à la zone d'entreposage.
Hadoop: HDFS
- HDFS est conçu pour stocker des fichiers volumineux sur un cluster d'ordinateurs bon marché.
- HDFS stocke les données sur plusieurs nœuds formant un cluster.
- Les clusters Hadoop stockent des exaoctets (Eo) de données.
- Chaque fichier est décomposé en blocs qui sont répliqués sur plusieurs nœuds.
- Cela assure la fiabilité et la disponibilité.
- Les données sont généralement générées une fois, lues plusieurs fois (WORM).
- Des analyses(batch) sont effectuées au fil du temps, impliquant une grande partie des données.
Hadoop: HDFS Bloc
- La taille de Bloc par défaut est de 128 Mo sur Hadoop 2.x (64 Mo sur Hadoop 1.x).
- Les blocs provenant du système d'exploitation font 4k Octets à titre d'exemple
- La grande taille minimise le temps de recherche des blocs.
- Il a configuration de la taille du bloc lors de la création d'un fichier
- Cette fonction est appelée "Variable Block Size" (VBS).
- Chaque bloc est répliqué sur un petit nombre de machines physiquement distinctes.
- Le facteur de réplication par défaut est de trois.
Hadoop: Architecture de HDFS
- NameNode est le nœud principal qui gère l'espace de noms du système de fichiers.
- Gère le noms de fichiers, facteurs de réplication, propriétés et répertoires.
- Les informations sont stockées localement dans deux fichiers :
- FsImage : Les métadonnées chargées en mémoire au démarrage du NameNode.
- Pour le dossier Hdfs : hdfs getconf -confKey dfs.namenode.name.dir.
- EditLog : Enregistre chaque modification des métadonnées du système de fichiers.
- Par exemple, la création ou la modification du facteur de réplication ajoute une entrée dans EditLog.
- FsImage : Les métadonnées chargées en mémoire au démarrage du NameNode.
- Régule l'accès aux fichiers par les clients et équilibre la charge.
- Le NameNode conserve les métadonnées en mémoire : Cela nécessite une grande taille de mémoire pour un accès rapide.
- Les blocs de fichiers sont répliqués sur plusieurs nœuds (DataNodes).
- Le nombre de copies de chaque bloc est contrôlé par le paramètre de réplication (par défaut : 3).
- La réplication se fait sur plusieurs racks
- Une copie est sur un premier rack; la 2e et la 3e copie peuvent se trouver sur un autre rack.
Hadoop : Architecture de HDFS - Esclaves : DataNode
- De nombreux DataNodes par cluster(un par noeud)
- Gère le stockage (read/write) attaché aux nœuds
- Envoie périodiquement un signal au NameNode en tant que heartbeat
- id, espace de stockage, espace utilisé
- Avec un certain intervalle indiqué dans hdfs-site.xml (dfs.heartbeat.interval, par défaut 3s)
- Renvoie périodiquement : dfs.blockreport.intervalMsec (par défaut, 21600000 millisecondes =6 heures)
- Au NameNode un rapport sur les blocs qu'il stocke.
- Id, taille, date de création
- Au NameNode un rapport sur les blocs qu'il stocke.
- Si un DataNode tombe en panne, ses blocs seront répliqués sur d'autres DataNodes avec Timout=(2 * heartbeat.recheck.interval (5min par défaut) + 10 * heartbeat.interval) = 630s par défaut .
- Effectue la création, la suppression et la réplication de blocs sur l'ordre du NameNode.
- Les données sont stockées sur plusieurs nœuds
Hadoop : Architecture de HDFS - SecondaryNameNode
- Le NameNode est un Single Point of Failure (SPOF).
- Si le NameNode est perdu, toutes les métadonnées sont perdues et les fichiers ne peuvent être reconstruits qu'à partir des blocs sur les DataNodes.
- Hadoop enregistre les métadonnées du système de fichiers (FsImage, EditLog) de manière persistante.
- Utilisation d'un SecondaryNameNode.
- ce n'est pas un nœud de sauvegarde,
- Il fusionne périodiquement l'image des noms de fichiers (FsImage) et le journal d'édition (EditLog)
- Il s'exécute sur un ordinateur distinct avec beaucoup de mémoire centrale et de CPU.
- En cas de défaillance du NameNode, démarrez un nouveau NameNode en utilisant les métadonnées d'un nœud secondaire.
- Les DataNodes et les applications clientes doivent être configurés pour utiliser un nouveau NameNode.
- Le nouveau NameNode sera indisponible tant que son image FsImage n’est pas chargée en mémoire.
- Cela prend quelques minutes ou quelques heures sur les grands clusters.
- Hadoop 2 a remédié à cette situation.
- Ajout de la prise en charge de HA (High availability).
- Couple de NameNodes (actif/passif).
- Le nœud passif devient actif en cas de panne du nœud actif.
- Ajout de la prise en charge de HA (High availability).
Hadoop: Haute Disponibilité dans HDFS (Hadoop 2)
- Le NameNode actif et le NameNode passif communiquent avec un groupe (quorum) de JournalNodes(généralement 3)
- Le NameNode actif envoie les logs aux JounalNodes pour les partager avec le NameNode passif.
- Le NameNode envoie les logs aux JounalNodes. La copie Fsimage est synchronisée avec le NameNode actif.
- Les DataNodes envoient périodiquement les blocs aux NameNodes actif et passif.
- ZooKeeper est un démon de coordination utilisé sur plusieurs nœuds.
- Il permet de coordonner le basculement rapide du NameNode actif vers le NameNode passif,
- Possède deux fonctions:
- Détecter une défaillance du NameNode actif. Les deux NameNodes (passif et actif) conservent une active sur ZooKeeper.
- ZooKeeper initie un basculement vers un NameNode passif et fournit un mécanisme pour l'élection du NameNode actif en cas de NameNodes passifs.
Hadoop : Lecture d'un fichier HDFS
- Le client (application HDFS) communique avec le NameNode pour demander la lecture d'un fichier.
- Le NameNode envoie des métadonnées au client.
- Cela détaille le nombre de blocs, de réplications, les id et les tailles des blocs, leur ordre et leurs emplacements.
- Le client communique ensuite avec les DataNodes où les blocs sont présents.
- Le client commence à lire les blocs en parallèle à partir des DataNodes sur la base des métadonnées.
- Pour améliorer les performances de lecture, l'emplacement de chaque bloc est choisi en fonction de sa distance par rapport au client, en commençant par le même DataNode, puis sur un autre DataNode sur le même rack.
- Enfin sur un autre DataNode dans un autre rack.
- Une fois que le client a lu tous les blocs, ils les combinera en un fichier.
- Un client peut appeler une méthode open () à partir d'une bibliothèque compatible HDFS ou pyarrow ()
- La méthode open () est appelée pour initialiser la lecture du fichier.
- Cet objet est connecté au NameNode utilisant un appel RPC.
- Il a besoin des métadonnées qui sont telles que les emplacements du bloc de fichier
- Le NameNode envoi les métadonnées du client avec les détails suivants:
- Nombre de blocs.
- Les identifiants / La taille du bloc.
- Emplacements du bloc
- Numéro de réplication
- La méthode Read () récupère les blocs.
- ce qui facilitera l'obtention d'une connexion à DataNodes.
- Le client lit le bloc sous la forme d'un flux grâce à des répétitions Read ().
- La connexion avec le DataNode sera automatiquement fermée.
- Fermez ensuite la méthode Close ().
- Pour enfin fermer la connexion avec HDFS
Hadoop : Écrire un fichier dans HDFS
- Le client appelle la méthode create() et se connecte au NameNode via des appels RPC.
- Il demande la création d'un nouveau fichier puis vérifie les permissions et l'existence.
- S'il réussit, une nouvelle entrée du fichier sera ajoutée. Autrement, une exception sera levée.
- Retourne un objet pour l'écriture (objet de type flux).
- Le flux permet d'écrire un fichier dans HDFS via la méthode write().
- Écriture des données en paquets. L'objet flux gère la communication interne.
- Les données sont divisées en paquets et placés dans une DataQueue.
- Allocation des blocs et la réplication de chaque bloc sont identifiés.
- Des flottes de données sont crées pour la réplication
- Si le facteur de réplication est de 3, trois DataNodes sont inclus dans le pipeline.
- Le flux de données envoi les paquets de données du nœud du premier oléoduc
- Le DataNode stocke le paquet reçu et le transmets ensuite.
- Il utilise une file d'attente nommée Ack Queue pour stockées les paquets en attente.
- Un accusé de réception est reçu de tous les DataNodes du pipeline le paquet est supprimé de la Ack Queue.
- Il y en échec, la file de la données de la queue va relancer l'opération.
- Termine l'écriture de tout cela avec la méthode "Close ()"
- Le NameNode est ensuite informé que l'opération d'écriture est enfin terminée.
Architecture de la fédération HDFS (Hadoop 2)
- Les fichiers dans Hadoop (HDFS) sont divisés en blocs qui sont ensuite stockés dans différents DataNodes.
- Accéder au contenu, la détection se fait par Nommage.
- Et les RAM du Nommage sont en Blockpool
- Le Nommage est dans Hadoop 1
- Hadoop 2 avec fédération HDFS multiple.
- Si les listes de blocs sont gérés par un nommage séparé donc la perte d'un nommage n'affecte pas le système.
- Hadoop HDFS dans des scénarios multi utilisateurs
- Augmente la production.
- Pas d'isolement dans la Nommage.
- Test d'utilisation qui encombre le nommage.
Les modes de fonctionnement de Hadoop
Il existe trois modes de fonctionnement de Hadoop :
- Local (autonome): Hadoop fonctionne sur une seule machine et tout s'exécute dans la même JVM (Java Virtual Machine).
- Le système d'exploitation hôte sera utilisé
- Pseudo-distribué: Hadoop fonctionne sur une seule machine, mais chaque démon principal fonctionne dans sa propre JVM.
- Le système de fichiers est HDFS dans ce mode.
- Mode Entièrement distribué : Le véritable Hadoop de production.
- Le système de fichiers distribués et les daemons fonctionnent sur un ensemble de machines.
Outils HDFS
- Deux façons de contrôler HDFS
- L'API Java
- Les commandes depuis le terminal
- Hadoop utilisé avec une seule Node Les clients utilisent HDFS via fs.default.name ou fs.defaultFS pour trouver le Nommage.
- Configurer les fichiers et les paramètres depuis les les fichiers suivants:.
- Facteur du réplica
- Deuxième Nommage
- Conf sites, Nom des sites
Ligne de commande HDFS
- Syntaxe :
hadoop fs -commande
.fs
: interpréteur (shell) qui prend en charge de nombreuses commandes :mkdir
,ls
,copyFromLocal
- Ou
$ hdfs dfs -commande
- Pour voir la liste de toutes les commandes :
$ hdfs dfs -help.
- Pour obtenir la description d'une commande : `$ hdfs dfs -help command
- exemple:
$ hdfs dfs -help mkdir
.
- exemple:
- Avec la syntaxe d'une commande :
$ hdfs dfs -usage commande
.- exemple:
$ hdfs dfs -usage put
.
- exemple:
- Pour exécuter l'état des fichiers :
$ hdfs fsck chemin -options
.- exemples :
$ hdfs fsck /user/tp -files
.$ hdfs fsck /user/tp -files -blocks -locations
.$ hdfs fsck /user/tp/file1.csv -blocks -locations
.
- exemples :
- Voir la syntax de la ligne de commande
$ hdfs fsck -help
- Afficher l'arborescence
$ hdfs dfs -ls / -ls hdfs://localhost:8020"
- Création d'un Dossier
$ hdfs dfs -mkdir /user/amine
- Copie d'un dossier/fichier local
$ hdfs dfs -copyFromLocal fichier /user/amine/ -put home/cloudera
- Les dernières ligne du fichier afficher avec tail.
Hadoop: MapReduce
- Les données sont distribuées en blocs sur les nœuds dans un framwork local.
- Optimise les performances en réduisant le trafic réseaux entres toutes les machines.
- Job de Programme qui sera utilisé par les nœuds utilisant les données.
Hadoop : MapReduce - Principe
- Le programme seras écris de la manière : MapReduce
- Des HDFS au cœurs de MapReduce. -Responsable de la distribution du groupement.
Hadoop : Intérêt
- Simplification du développement
- L'algorithmes sont le point de focus
- Un programme peux contenir des fonction Map et des fonction Reduce.
- 1 Maitre (job tracker) l'exécution sur plusieurs esclavages.
MapReduce : JobTracker
- Reçoit les jobs MapReduce envoyé par les clients .
- Communique avec le NameNode du données à traiter.
- transmettre les tâches ; Ma et Reduis aux nœuds TaskTrackers
- Surveille les tâches et le statut des tracckers.
- Relance une tâche si elle échoue.
- Surveille l'état d'avancement des jobs et fournit des informations.
- L'algorithme d'ordonnancement des tâches et algorithmique avec un ordre FIFO
- le JObTraacker s'occupe de la gestion, ordonnancement et la surveillance.
MapReduce : TaskTracker
- Exec tous types de tâches
- Nombre de tâche Max
- Les mappages sont sur des nœuds à traiter, s'il n'existe il utilisera d'autres cœur de donnée
- Communique son JobTraccker via des heartbeats (id, slots libres )
- Après expiration des interval son Tracker est expiré
MapRedudce : Programmation Mode Map
- Les fichiers sont divisés en "Splits" qui vont charger le fichier.
- Les division et une logique qui fait en sortir un division.
- La taille est ajustable.
Programation Mode Shuffle
- Cette partie est pré-programmée de manère local dans MapReduce.
- Les envoies sont au même nod.
- Et pour finir les données sont fonctionnes.
Hadoop YARN (Yet Another Resource Negotiator)
- MapReduce V1 a 1 seul YARN fonctionnelle : 1 Nommage (résolution et application d'app )
- La source manager va faire une configuration sur la machine a t'elle le ressource.
- Et les tache du programme on des exécutions sur le nombre de ressources contrôlés
Hadoop : Négociateur des ressources YARN ( Suite )
- Nombre de donnée disponible en contrôleur dynamique La capacité vas dépendre des ressources
- Certain processeur comme YARN -3 n'on pas eu la configuration
- Un node manage démasque les contenue vérifie ces contenue et effectue une commande a l'ApplicationManager
- La gestion application aura à des programme déjà config qui prendras des nouvelle configurations
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.