Qu'est-ce que l'architecture Hadoop Yarn et ses composants

Publié: 2020-02-10

Table des matières

Présentation de Hadoop YARN

YARN est le composant principal de Hadoop v2.0. YARN aide à ouvrir Hadoop en permettant de traiter et d'exécuter des données pour le traitement par lots, le traitement de flux, le traitement interactif et le traitement de graphes qui sont stockés dans HDFS. De cette façon, il aide à exécuter différents types d'applications distribuées autres que MapReduce.

Dans l'architecture YARN, la couche de traitement est séparée de la couche de gestion des ressources. Créer une séparation entre le gestionnaire d'application et le gestionnaire de ressources était la responsabilité du suivi des travaux dans la version de Hadoop 1.0. YARN permet aux données stockées dans HDFS (Hadoop Distributed File System) d'être traitées et exécutées par divers moteurs de traitement de données tels que le traitement par lots, le traitement de flux, le traitement interactif, le traitement de graphes et bien d'autres. Ainsi, l'efficacité du système est augmentée avec l'utilisation de YARN. Le traitement de la demande est programmé dans YARN à travers ses différents composants. De nombreux types de ressources sont également progressivement alloués pour une utilisation optimale. YARN aide beaucoup à la bonne utilisation des ressources disponibles, ce qui est très nécessaire pour le traitement d'un grand volume de données.

Pourquoi FIL?

MapReduce exécute des fonctions de gestion et de traitement des ressources. Hadoop v1.0 est également connu sous le nom de MapReduce Version 1 (MRV1). Il n'y avait qu'un seul maître pour Job Tracker.

Vous ne croirez pas à quel point ce programme a changé la carrière des étudiants

Dans la version précédente de Hadoop, Hadoop version 1.0, également connue sous le nom de MapReduce version 1 (MRV1), est utilisée pour effectuer à la fois la tâche de gestion des processus et des ressources par elle-même. Il a un module de suivi des travaux qui est responsable de tout. C'est donc le maître unique qui alloue les ressources aux applications, effectue la planification de la demande et surveille également les travaux de traitement dans le système. Hadoop version 1.0 réduit les tâches et attribue des cartes sur plusieurs sous-processus appelés Task Trackers. Task Tracker signale également la progression des processus de manière périodique. Mais le problème principal n'est pas cela, le problème est cette conception d'un maître unique pour tous, ce qui entraîne des problèmes de goulot d'étranglement. De plus, l'utilisation des ressources de calcul était inefficace. Ainsi, l'évolutivité est devenue un problème avec cette version de Hadoop. Mais du bon côté, ce problème est résolu par YARN, un composant central essentiel de son successeur Hadoop version 2.0 qui a été introduit en 2012 par Yahoo et Hortonworks. L'idée de base derrière ce soulagement est de séparer MapReduce de la gestion des ressources et de la planification des tâches au lieu d'un seul maître. Ainsi, YARN est désormais responsable de la planification des travaux et de la gestion des ressources.

Dans Hadoop 2.0, le concept de maître d'application et de gestionnaire de ressources a été introduit par YARN. Dans l'ensemble du cluster Hadoop, l'utilisation des ressources est surveillée par le gestionnaire de ressources.

Il y a certaines caractéristiques de YARN à cause desquelles il est devenu très célèbre, qui sont :

  1. Multi-tenant : YARN a permis l'accès à plusieurs moteurs de traitement de données tels que le moteur de traitement par lots, le moteur de traitement de flux, le moteur de traitement interactif, le moteur de traitement de graphes et bien plus encore. Cela a donné l'avantage de la multi-location à l'entreprise.
  2. Utilisation des clusters : les clusters sont utilisés de manière optimisée car les clusters sont utilisés de manière dynamique dans Hadoop à l'aide de YARN.
  3. Compatibilité : YARN est également compatible avec la première version de Hadoop, c'est-à-dire Hadoop 1.0, car il utilise les applications de réduction de carte existantes. Ainsi, YARN peut également être utilisé avec Hadoop 1.0.
  4. Évolutivité : des milliers de clusters et de nœuds sont autorisés par le planificateur dans Resource Manager de YARN à être gérés et étendus par Hadoop.

Composants de FIL

  • Récipient:

Dans le conteneur, on peut trouver des ressources physiques comme un disque sur un seul nœud, des cœurs de processeur, de la RAM. Le contexte de lancement de conteneur (CLC) est utilisé pour appeler des conteneurs. Données sur les dépendances, les jetons de sécurité, les variables d'environnement qui sont conservées sous la forme d'un enregistrement connu sous le nom de Container Launch Context (CLC).

  1. Sur un hôte spécifique, une application ne peut utiliser que la mémoire spécifiée du CPU et de la mémoire. Cette quantité de mémoire spécifiée ne peut être utilisée qu'après que l'autorisation a été accordée par le conteneur.
  2. Le contexte de lancement de conteneur est utilisé pour gérer les conteneurs YARN. Il est également appelé Container LifeCycle (CLC). Les commandes nécessaires à la création du processus sont stockées dans cet enregistrement. Il enregistre également la charge utile pour les services Node Manager, les jetons de sécurité, les dépendances, la carte des variables d'environnement.
  • Maître d'application :

Dans un cadre, lorsqu'un seul travail est soumis, cela s'appelle une application. La surveillance de l'avancement de l'application, le suivi de l'état de l'application, la négociation des ressources avec le gestionnaire de ressources relèvent de la responsabilité du gestionnaire d'application. Toutes les exigences d'exécution d'une application se font en envoyant le contexte de lancement de conteneur (CLC). Le maître d'application publie le contexte de lancement du conteneur (CLC) en demandant le conteneur au gestionnaire de nœuds. De temps à autre, le gestionnaire de ressources reçoit un rapport d'intégrité après le démarrage de l'application.

  • Gestionnaire de nœud :

Le gestionnaire de nœuds s'occupe des nœuds individuels du cluster Hadoop et gère également les conteneurs liés à chaque nœud spécifique. Il est enregistré auprès du gestionnaire de ressources et envoie l'état de santé de chaque nœud au gestionnaire de ressources, indiquant si le processus du nœud a fini de travailler avec la ressource. Comme son objectif principal est de gérer chaque conteneur de nœud spécifique qui est attribué par le gestionnaire de ressources. Le gestionnaire de nœud crée également un processus de conteneur à la demande du maître d'application. Lorsque le maître d'application envoie et demande le conteneur attaché au gestionnaire de nœuds par un CLC (Container Launch Context) qui comprend tout ce dont une application a besoin pour s'exécuter. Ensuite, le gestionnaire de nœud crée le conteneur de processus demandé et l'exécute. Le gestionnaire de nœud est également chargé de surveiller l'utilisation des ressources par conteneur individuel et de le signaler au gestionnaire de ressources. Ainsi, le gestionnaire de nœuds et le gestionnaire de ressources collaborent pour communiquer entre les nœuds et gérer l'utilisation des ressources par chaque nœud du cluster. Il peut également tuer des conteneurs s'il est dirigé par le gestionnaire des ressources. Enfin, les gestionnaires de nœuds enregistrent tout via le système de gestion des journaux.

Un nœud particulier est pris en charge par le gestionnaire de nœuds. Le gestionnaire de nœuds gère le flux de travail et l'application du nœud. La gestion des journaux est effectuée et le gestionnaire de nœuds surveille l'utilisation des ressources. Le gestionnaire de ressources donne des instructions pour tuer un conteneur au gestionnaire de nœuds. Le maître d'application demande au gestionnaire de nœud de démarrer le processus de conteneur. La création d'un processus de conteneur relève de la responsabilité du Node Manager.

  • Gestionnaire de ressources:

La gestion des ressources et l'affectation de toutes les applications relèvent de la responsabilité du gestionnaire de ressources et est le démon maître de YARN. Les requêtes reçues par le gestionnaire de ressources sont transmises au gestionnaire de nœud correspondant. Selon l'application, les ressources sont allouées par le gestionnaire de ressources pour l'achèvement.

  1. L'utilisation du cluster est optimisée, par exemple en maintenant l'utilisation de toutes les ressources actives contre différents types de limitations telles que les SLA, l'équité et les garanties de capacité.
  2. Le gestionnaire de ressources procède à l'allocation des ressources disponibles.
  3. Le gestionnaire de ressources arbitre les ressources du cluster.
  4. Le traitement réel des demandes a lieu dans les nœuds et les gestionnaires de nœuds le gèrent. Chaque fois qu'une demande de traitement est reçue, il transfère les demandes en parties à ses gestionnaires de nœuds correspondants.
  5. Resource Manager est la plus haute autorité pour l'allocation des ressources.

Il existe deux composants principaux du gestionnaire de ressources, qui sont : -

  • Gestionnaire d'applications -

Le gestionnaire d'application est responsable de la gestion d'un ensemble de tâches ou d'applications soumises. Il vérifie et valide d'abord les spécifications de la candidature soumise et peut rejeter les candidatures s'il n'y a pas assez de ressources disponibles. Il garantit également qu'aucune autre application n'existe avec le même ID qui est déjà soumis et qui peut être causée par un client erroné ou malveillant. Ensuite, il transmet la demande soumise après validation au planificateur. Enfin, il observe également les états des applications et gère les applications terminées pour économiser une partie de la mémoire de Resource Manager. Le gestionnaire d'applications conserve un cache des applications terminées et déplace les anciennes applications terminées pour laisser de l'espace pour les applications fraîchement soumises.

  • Planificateur -

En fonction de la disponibilité des ressources et de l'allocation des applications, le planificateur planifie les tâches. Il n'y a aucune autre tâche effectuée par le planificateur comme aucun redémarrage du travail après l'échec, le suivi ou la surveillance des tâches. Les différents types de plug-ins de planificateur sont Fair Scheduler et Capacity Scheduler, qui sont pris en charge par le planificateur YARN pour la partition des ressources du cluster.

Étapes du flux de travail de l'application dans Hadoop YARN

Une demande est présentée par le client.

  1. Le gestionnaire d'applications est lancé par l'allocation du conteneur par le gestionnaire de ressources.
  2. Le gestionnaire de ressources et le gestionnaire d'applications s'enregistrent l'un avec l'autre.
  3. Le gestionnaire d'application effectue la négociation du conteneur avec le gestionnaire de ressources.
  4. Le gestionnaire de nœuds lance le conteneur après avoir été averti par le gestionnaire d'applications.
  5. L'exécution du code de l'application se fait dans le conteneur.
  6. Le gestionnaire d'application ou le gestionnaire de ressources surveille l'état de l'application après avoir été contacté par le client.
  7. L'annulation de l'enregistrement d'Application Manager est effectuée avec Resource Manager une fois le processus terminé.

Emballer

Si vous souhaitez en savoir plus sur le Big Data, consultez notre programme PG Diploma in Software Development Specialization in Big Data qui est conçu pour les professionnels en activité et fournit plus de 7 études de cas et projets, couvre 14 langages et outils de programmation, pratique pratique ateliers, plus de 400 heures d'apprentissage rigoureux et d'aide au placement dans les meilleures entreprises.

Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.

Maîtrisez la technologie du futur - Big Data

Plus de 400 heures d'apprentissage. 14 langues et outils. Statut des anciens de l'IIIT-B.
Programme de certificat avancé en Big Data de l'IIIT Bangalore