FAQ HadoopConsultez toutes les FAQ
Nombre d'auteurs : 4, nombre de questions : 78, dernière mise à jour : 10 août 2020 Ajouter une question
Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums de http://www.developpez.com et de l'expérience personnelle des auteurs et de la traduction de la documentation officielle d'Hadoop.
Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose sont correctes. Les auteurs font leur maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez nous aider en devenant rédacteur, lisez ceci.
Sur ce, nous vous souhaitons une bonne lecture.
L'équipe Big Data
YARN (Yet Another Resource Negotiator) est un ordonnanceur de tâches (job scheduler) et un gestionnaire de ressources introduit dans Hadoop 2.0. Dans Hadoop 1.0, la gestion des ressources et le traitement des données étaient assurés par MapReduce. Avec l'arrivée de YARN, ces deux activités sont séparées. Vous stockez toujours vos données dans HDFS, mais MapReduce n'est qu'une des nombreuses options de traitement de vos données.
Les principaux composants de YARN sont le ResourceManager, les NodeManagers et les ApplicationMasters.
Le ResourceManager est le composant maître de YARN. Il est lui-même principalement composé d'un ordonnanceur (scheduler) et d'un gestionnaire d'applications (ApplicationManager). L’ordonnanceur est responsable de l'allocation des ressources (CPU, mémoire, disque, réseau, etc.) aux applications en cours d'exécution. En ce qui concerne l'ApplicationManager, il gère l'exécution des ApplicationMasters dans le cluster : il est responsable du démarrage des ApplicationMasters, mais aussi de la surveillance et du redémarrage de ceux-ci sur différents nœuds en cas de défaillance.
Les NodeManagers sont les composants travailleurs de YARN. Un NodeManager ne gère qu'un nœud travailleur du cluster. Il est responsable de la gestion du cycle de vie des conteneurs, il surveille leur utilisation de ressources et en fait un rapport au ResourceManager. Il assure également la surveillance de la santé du nœud sur lequel il s'exécute, la gestion des journaux et services auxiliaires qui peuvent être exploités par différentes applications YARN. Le ResourceManager et les NodeManagers forment le framework de calcul.
L’ApplicationMaster est un processus de YARN qui peut être exécuté sur n’importe quel nœud du cluster. Il est responsable de la négociation des ressources avec le ResourceManager et travaille avec les NodeManagers pour exécuter et surveiller les tâches. Il y a un ApplicationMaster pour chaque application.
Bien que MapReduce soit un puissant framework, il est plus adapté aux traitements par lots (batch). Or, Hadoop 1 ne prend en charge que MapReduce comme framework de traitement des données. Par conséquent, pour d'autres problématiques de traitement (flux, temps réel, interactif, etc.), les organisations ont tendance à se tourner vers des frameworks plus spécialisés ou plus adéquats tels que Storm ou Spark. Dans Hadoop 2, l'arrivée de YARN facilite l'adoption d'autres frameworks, car il vous permet de les exécuter tous sur le même cluster, en cohabitation avec MapReduce, ce qui permet d'être plus efficace : vous pouvez tout stocker au même endroit (HDFS) et vous n'aurez plus besoin de synchroniser les données entre vos clusters, puisqu'il y en a qu'un seul.
YARN permet aussi une plus grande mise à l'échelle. Le JobTracker centralisé a été un facteur limitant dans la mise à l'échelle de Hadoop 1. En effet, il doit à lui seul traiter toutes les pulsations (heartbeats) et les mises à jour de tâches en un temps acceptable, ce qui devient difficile quand on commence à atteindre les dizaines de milliers de tâches. YARN vient résoudre ce problème : le JobTracker est supprimé et la gestion des tâches est maintenant décentralisée, c'est-à-dire assurée par les applications elles-mêmes. Autrement dit, dans YARN, chaque job suit ses propres tâches dans un processus séparé. Bien que YARN dispose toujours d'un gestionnaire de ressources centralisé (le ResourceManager), il a beaucoup moins à faire que le JobTracker dans Hadoop 1, il permet donc une plus grande mise à l'échelle.
Avec YARN, la gestion des ressources est également plus efficace. Le modèle de gestion des ressources dans Hadoop 1.0 est basé sur la notion abstraite de slot, qui représente un package de ressources informatiques. Une fois définis, les slots ne peuvent pas être modifiés sans redémarrage du processus, ce qui peut conduire à de nombreux types d'inefficacité. Tout d'abord, les slots sont attribués soit à des tâches Map, soit à des tâches Reduce. Cela veut dire qu'il est possible que des slots Reduce soient inutilisés alors que des milliers de tâches Map sont placées dans une file d'attente en attendant que des slots Map soient disponibles. Deuxièmement, l'approche basée sur les slots suppose que tous les processus sont créés égaux et ne tient donc pas compte des besoins de ressources différents. Or, certains jobs nécessitent beaucoup de ressources CPU tandis que pour d'autres, ce sont les ressources mémoire qui sont intensément consommées. YARN introduit une approche plus fine en suivant l'utilisation des ressources physiques comme la mémoire et le CPU. Cette approche permet à YARN d'être beaucoup plus intelligent quant à la façon dont il alloue les ressources aux tâches ayant des besoins variables.
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.