Introduction à l'architecture Hadoop YARN
MapReduce était utilisé pour effectuer à la fois la gestion et le traitement des ressources dans la version 1.0 de Hadoop antérieure. Ici, Job Tracker a effectué l'allocation des ressources, la planification et la surveillance des travaux en affectant une carte et en réduisant les tâches au Task Tracker. Cela a entraîné des problèmes tels que l'évolutivité, l'utilisation inefficace des ressources. Comme le framework Hadoop a subi plusieurs changements au fil des ans; nous pouvons voir qu'il peut être utilisé pour effectuer bien plus que d'exécuter uniquement les travaux MapReduce. YARN signifie Yet Another Resource Negotiator, appelé le système de gestion de cluster de Hadoop, qui a été introduit avec Hadoop 2.0 pour prendre en charge l'informatique distribuée, ce qui améliore également la mise en œuvre de MapReduce. Dans YARN, le gestionnaire de ressources et les planificateurs sont externes au cadre. Donc, dans YARN, bien que nous ayons des nœuds de données, il n'y a plus de suiveurs de tâches ou de suiveurs de travaux. Également avec YARN, nous pouvons avoir la gestion des ressources ainsi que la planification générique. Dans cette rubrique, nous allons découvrir les différentes architectures de YARN
Expliquer l'architecture Hadoop YARN avec un diagramme
(Architecture de Hadoop YARN)
YARN introduit le concept d'un gestionnaire de ressources et d'un maître d'application dans Hadoop 2.0. Le gestionnaire de ressources voit l'utilisation des ressources à travers le cluster Hadoop tandis que le cycle de vie des applications qui s'exécutent sur un cluster particulier est supervisé par le maître d'application. Fondamentalement, nous pouvons dire que pour les ressources de cluster, le maître d'application négocie avec le gestionnaire de ressources. Cette tâche est effectuée par les conteneurs qui contiennent des restrictions de mémoire définies. Ces conteneurs sont ensuite utilisés pour exécuter les processus spécifiques à l'application et ces conteneurs sont également supervisés par les gestionnaires de nœuds qui s'exécutent sur les nœuds du cluster. Cela confirmera que pas plus que les ressources allouées ne sont utilisées par l'application.
Divers composants de YARN
Voici les différents composants de YARN.
1) Gestionnaire de ressources
YARN fonctionne via un gestionnaire de ressources qui est un par nœud et un gestionnaire de nœuds qui s'exécute sur tous les nœuds. Le gestionnaire de ressources gère les ressources utilisées à travers le cluster et le gestionnaire de nœuds déjeune et surveille les conteneurs. Scheduler et Application Manager sont deux composants du Resource Manager.
- Planificateur : la planification est effectuée en fonction des besoins en ressources des applications. YARN offre peu d'ordonnanceurs parmi lesquels choisir et ils sont Fair and Capacity Scheduler. En cas de panne de matériel ou d'application, le planificateur ne garantit pas le redémarrage des tâches ayant échoué. En outre, Scheduler alloue des ressources aux applications en cours d'exécution en fonction de la capacité et de la file d'attente.
- Gestionnaire d'applications : il gère le fonctionnement d'Application Master dans un cluster et en cas de défaillance du conteneur Application Master, il aide à le redémarrer. De plus, il a la responsabilité d'accepter la soumission des offres.
2) Gestionnaire de nœuds
Node Manager est responsable de l'exécution de la tâche dans chaque nœud de données. Le gestionnaire de nœuds dans YARN envoie par défaut une pulsation au gestionnaire de ressources qui transporte les informations des conteneurs en cours d'exécution et concernant la disponibilité des ressources pour les nouveaux conteneurs. Il est chargé de voir individuellement les nœuds du cluster et gère le flux de travail et les travaux utilisateur sur un nœud spécifique. Il gère principalement les conteneurs d'applications attribués par le gestionnaire de ressources. Le Node Manager démarre les conteneurs en créant les processus de conteneur qui sont demandés et il tue également les conteneurs comme demandé par le Resource Manager.
3) Conteneurs
Les conteneurs sont un ensemble de ressources comme la RAM, le CPU et la mémoire, etc. sur un seul nœud et ils sont planifiés par Resource Manager et surveillés par Node Manager. Le cycle de vie du conteneur gère les conteneurs YARN en utilisant le contexte de lancement de conteneur et donne accès à l'application pour l'utilisation spécifique des ressources dans un hôte particulier.
4) Maître d'application
Il surveille l'exécution des tâches et gère également le cycle de vie des applications s'exécutant sur le cluster. Un maître d'application individuel est associé à un travail lorsqu'il est soumis au framework. Sa principale responsabilité est de négocier les ressources auprès du gestionnaire de ressources. Il fonctionne avec le Node Manager pour surveiller et exécuter les tâches.
Afin d'exécuter une application via YARN, les étapes ci-dessous sont effectuées.
- Le client contacte le gestionnaire de ressources qui demande d'exécuter le processus de demande, c'est-à-dire qu'il soumet l'application YARN.
- L'étape suivante est que le gestionnaire de ressources recherche un gestionnaire de nœuds qui, à son tour, lancera le maître d'application dans un conteneur.
- Le maître d'application peut soit exécuter l'exécution dans le conteneur dans lequel il s'exécute actuellement et fournir le résultat au client, soit demander plus de conteneurs au gestionnaire de ressources, qui peut être appelé calcul distribué.
- Le client contacte ensuite le gestionnaire de ressources pour surveiller l'état de l'application.
Avec MapReduce dans Hadoop version 1.0 (MRV1), le nombre de cartes et de logements réduits a été défini par nœud. Également dans un cluster Hadoop, car les capacités matérielles variaient et le nombre de tâches sur un nœud spécifique devait être limité manuellement. Mais avec YARN, cette lacune est surmontée car ici, le gestionnaire de ressources connaît la capacité de chaque nœud lorsqu'il communique avec le gestionnaire de nœuds qui s'exécute sur chaque nœud.
Conclusion - Architecture Hadoop YARN
YARN aide à surmonter le problème d'évolutivité de MapReduce dans Hadoop 1.0 car il divise le travail de Job Tracker, à la fois la planification des tâches et le suivi de la progression des tâches. En outre, le problème de disponibilité est également résolu, car plus tôt dans Hadoop 1.0, l'échec de Job Tracker a conduit au redémarrage des tâches. YARN est venu avec de nombreux bonus supplémentaires tels qu'une meilleure utilisation des ressources car il n'y a pas de créneau fixe pour les tâches car il fournit une gestion centrale des ressources. Ainsi, avec YARN, de nombreux problèmes rencontrés dans la version précédente de Hadoop sont résolus car ils aident à séparer le traitement des données de la planification et de la gestion des ressources. Avec YARN, il est possible d'exécuter des requêtes interactives de manière indépendante et de fournir une meilleure analyse en temps réel.
Articles recommandés
Ceci a été un guide pour l'architecture Hadoop YARN. Nous discutons ici des divers composants de YARN, notamment le gestionnaire de ressources, le gestionnaire de nœuds et les conteneurs, ainsi que l'architecture. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -
- Écosystème Apache Hadoop
- Composants de l'écosystème Hadoop
- Composants Hadoop
- Écosystème Hadoop