Hadoop - FIL

Table des matières

1. YARN est un système général de gestion des ressources et une plate-forme de planification

2. Architecture de fil

Gestionnaire de ressources (RM)

NodeManager (NM)

Maître d'application (AM)

3. Soumission du programme Processus d'interaction YARN

4. Planificateur de ressources YARN

Avantages de la fonctionnalité du planificateur de capacité

 Comment comprendre le partage équitable

 Fonctionnalités et avantages de Fair Scheduler

Apache Hadoop YARN (Yet Another Resource Negotiator Another Resource Coordinator) est un nouveau gestionnaire de ressources Hadoop

YARN est un système général de gestion des ressources et une plate-forme de planification qui peut fournir une gestion et une planification unifiées des ressources pour les applications de couche supérieure

Son introduction a apporté de grands avantages aux clusters en termes d'utilisation, de gestion unifiée des ressources et de partage de données.

1. YARN est un système général de gestion des ressources et une plate-forme de planification

Système de gestion des ressources : les ressources matérielles du cluster n'ont rien à voir avec le fonctionnement du programme, telles que la mémoire, le processeur, etc.

Plate-forme d'ordonnancement : comment allouer des ressources de calcul pour plusieurs programmes en même temps, règles d'ordonnancement (algorithmes)

Général : non seulement prend en charge les programmes MapReduce, mais prend également en charge en théorie divers programmes informatiques. YARN ne se soucie pas de ce que vous faites, ne se soucie que des ressources dont vous avez besoin, et vous les donne dans certains cas, et me les renvoie lorsqu'elles sont usé.

Hadoop YARN peut être compris comme une plate-forme de système d'exploitation distribuée, alors que les programmes informatiques tels que MapReduce sont équivalents à des applications s'exécutant sur le système d'exploitation, et YARN fournit à ces programmes les ressources nécessaires au calcul (mémoire, CPU, etc.).

Hadoop a le statut d'aujourd'hui, grâce à YARN. Grâce à YARN, plus de frameworks informatiques peuvent être connectés à HDFS, pas seulement MapReduce. C'est précisément à cause de la tolérance de YARN que d'autres frameworks informatiques peuvent se concentrer sur l'amélioration des performances de calcul.

HDFS n'est peut-être pas le meilleur système de stockage de données volumineuses, mais c'est le système de stockage de données volumineuses le plus largement utilisé, et YARN a beaucoup contribué

 ################################################# #

2. Architecture de fil

Gestionnaire de ressources (RM)

Le rôle principal du cluster YARN, qui détermine l'autorité finale d'allocation des ressources entre toutes les applications du système, c'est-à-dire l'arbitre final

Recevez la soumission de travail de l'utilisateur et attribuez-la via NM pour gérer les ressources informatiques de chaque machine

NodeManager (NM)

Le rôle esclave dans YARN, un sur chaque machine, est responsable de la gestion des ressources informatiques sur cette machine

Selon la commande RM, démarrez le conteneur Container, surveillez l'utilisation des ressources du conteneur et signalez l'utilisation des ressources du rôle de maître RM

Maître d'application (AM)

Chaque candidature soumise par un utilisateur contient un AM

Le patron du programme d'application est responsable de l'application des ressources à chaque étape du programme et supervise la mise en œuvre du programme.

 ################################################# # 

3. Soumission du programme Processus d'interaction YARN

Lorsqu'un utilisateur soumet une application à YARN, YARN exécutera l'application en deux étapes

La première étape est que le client demande des ressources et démarre l'ApplicationMaster de ce programme

Dans la deuxième étape, ApplicationMaster demande des ressources pour le programme en fonction des conditions internes spécifiques du programme et surveille l'ensemble de son processus de fonctionnement jusqu'à ce que l'opération soit terminée.

 

 Processus spécifique :

Étape 1 : L'utilisateur soumet le programme d'application au ResourceManager dans YARN via le client (par exemple, le jar hadoop soumet le programme MR)

Etape 2 : ResourceManager alloue le premier Container (container) pour l'application, et communique avec le NodeManager correspondant, lui demandant de démarrer l'ApplicationMaster de cette application dans ce Container

Étape 3 : Une fois l'ApplicationMaster démarré avec succès, enregistrez d'abord le ResourceManager et maintenez la communication, afin que l'utilisateur puisse directement vérifier l'état de fonctionnement de l'application via le ResourceManager (quelques pour cent traités)

Étape 4 : ApplicationMaster demande des ressources pour chaque élément de tâche ResourceManager dans ce programme et surveille son état d'exécution

Étape 5 : Une fois que l'ApplicationMaster a demandé des ressources, il communique avec le NodeManager correspondant et lui demande de démarrer la tâche.

Étape 6 : Une fois que NodeManager a configuré l'environnement d'exécution pour la tâche, écrivez la commande de démarrage de la tâche dans un script et démarrez la tâche via le script.

Étape 7 : Chaque tâche signale son état et sa progression à ApplicationMaster via un protocole RPC, afin qu'ApplicationMaster puisse suivre l'état d'exécution de chaque tâche, afin que la tâche puisse être redémarrée en cas d'échec de la tâche. Pendant l'exécution de l'application, l'utilisateur peut interroger à tout moment l'état d'exécution actuel de l'application auprès de l'ApplicationMaster via RPC.

Étape 8 : Une fois l'exécution de l'application terminée, l'ApplicationMaster se déconnecte du ResourceManager et se ferme

 ################################################# # 

4. Planificateur de ressources YARN

Idéalement, les demandes faites par les applications seraient immédiatement approuvées par YARN. Mais en pratique, les ressources sont limitées, et sur un cluster occupé,

Les applications devront souvent attendre que certaines de leurs demandes soient satisfaites. Le travail du planificateur YARN est d'allouer des ressources aux applications selon certaines politiques définies

Dans YARN, le planificateur est responsable de l'allocation des ressources aux applications, qui est l'un des composants principaux de ResourceManager. Le planificateur est entièrement dédié

Utilisé pour la planification des travaux, il ne peut pas suivre l'état de l'application.

D'une manière générale, la planification est un problème difficile et il n'y a pas de "meilleure" stratégie. Pour cette raison, YARN propose une variété de planificateurs et de stratégies configurables parmi lesquels choisir.

Planificateur FIFO (planificateur premier entré, premier sorti), Planificateur de capacité (planificateur de capacité), Planificateur équitable (planificateur équitable).
La version Apache YARN utilise par défaut Capacity Scheduler.
Si vous avez besoin d'utiliser d'autres planificateurs, vous pouvez les configurer dans yarn.resourcemanager.scheduler.class dans yarn-site.xml.

FIFO Scheduler est l'implémentation originale du planificateur de JobTracker dans Hadoop1.x, et ce planificateur est conservé dans YARN

FIFO Scheduler est une idée premier entré, premier sorti, c'est-à-dire que l'application soumise en premier s'exécute en premier. Planification des travaux indépendamment de la priorité et de la portée, adaptée aux faibles charges

petits amas. Il est moins efficace et peut causer des problèmes lors de l'utilisation de grands clusters partagés.

Le planificateur FIFO a une file d'attente de contrôle globale, le nom de la file d'attente par défaut est par défaut, le planificateur obtiendra tout le cluster actuel

Les informations sur les ressources agissent sur cette file d'attente globale.
Avantages :
    aucune configuration requise, premier arrivé, premier servi, facile à exécuter
Inconvénients :
    la priorité des tâches ne deviendra pas plus élevée, donc les travaux hautement prioritaires doivent attendre, ne convient pas aux clusters partagés

 

La planification de la capacité de Capacity Scheduler est la stratégie de planification par défaut d'Apache Hadoop3.x. Cette stratégie permet à plusieurs organisations de partager l'ensemble des ressources du cluster, chacune

Les organisations peuvent obtenir une partie de la puissance de calcul du cluster. En attribuant des files d'attente dédiées à chaque organisation, puis en attribuant certaines ressources de cluster à chaque file d'attente,

De cette façon, l'ensemble du cluster peut fournir des services à plusieurs organisations en configurant plusieurs files d'attente

La capacité peut être comprise comme des files d'attente de ressources individuelles, qui sont allouées par les utilisateurs eux-mêmes. L'intérieur de la file d'attente peut être divisé verticalement, de sorte qu'un

Plusieurs membres de l'organisation peuvent partager cette ressource de file d'attente. Au sein d'une file d'attente, la planification des ressources adopte une stratégie premier entré, premier sorti (FIFO).

 

Le planificateur Capacity Scheduler divise les ressources en unités de files d'attente. Pour le dire simplement et populairement, chaque file d'attente a des ressources indépendantes, et la structure de la file d'attente

et les ressources sont configurables.

 

 ################################################# # 

Avantages de la fonctionnalité du planificateur de capacité

Files d'attente hiérarchiques

La gestion hiérarchique facilite et rend plus raisonnable l'allocation et la limitation de l'utilisation des ressources.

Garanties de capacité

Un ratio de ressources peut être défini sur chaque file d'attente pour garantir que chaque file d'attente n'occupe pas les ressources de l'ensemble du cluster.

Sécurité

Chaque file d'attente a un contrôle d'accès strict. Les utilisateurs peuvent uniquement soumettre des tâches à leurs propres files d'attente et ne peuvent pas modifier ou accéder aux tâches dans d'autres files d'attente.

Élasticité

Les ressources libres peuvent être affectées à n'importe quelle file d'attente.

Lorsque plusieurs files d'attente sont en concurrence, elles seront équilibrées en fonction du rapport de poids.

Fair Scheduler est appelé ordonnancement équitable, qui offre aux applications YARN un autre moyen de partager équitablement les ressources dans de grands clusters. faire toutes les applications en ping

En moyenne, une part égale des ressources peut être obtenue au fil du temps.

L'objectif de conception de Fair Scheduler est d'allouer des ressources équitables pour toutes les applications (la définition de l'équité est définie par des paramètres).

La planification équitable peut fonctionner sur plusieurs files d'attente, permettant le partage et la préemption des ressources

 

 Comment comprendre le partage équitable

Il y a deux utilisateurs A et B, chacun avec sa propre file d'attente.

A démarre une tâche, et puisqu'il n'y a pas de demande de B, il alloue toutes les ressources disponibles du cluster.

Ensuite, B démarre une tâche alors que la tâche de A est toujours en cours d'exécution. Au bout d'un certain temps, A et B utilisent chacun la moitié des ressources.

Désormais, si l'utilisateur B démarre une deuxième tâche alors que d'autres tâches sont encore en cours d'exécution, il partagera ses ressources avec une autre tâche de B, de sorte que chaque tâche de B sera

a un quart des ressources, et la continuation de A aura la moitié des ressources. Le résultat est que les ressources sont partagées équitablement entre les utilisateurs

 Fonctionnalités et avantages de Fair Scheduler

Files d'attente hiérarchiques : les files d'attente peuvent être organisées dans une hiérarchie pour diviser les ressources, et les pondérations peuvent être configurées pour partager le cluster dans des proportions spécifiques

Mappage de file d'attente basé sur l'utilisateur ou le groupe : les files d'attente peuvent être attribuées en fonction du nom d'utilisateur ou du groupe qui a soumis la tâche. Si la tâche spécifie une file d'attente, dans cette file d'attente

soumettre la tâche

Préemption des ressources : Selon la configuration de l'application, la préemption et l'allocation des ressources peuvent être amicales ou obligatoires. La préemption des ressources n'est pas activée par défaut

Quota minimum garanti : vous pouvez définir la ressource de file d'attente minimum, ce qui permet d'allouer le partage minimum garanti à la file d'attente pour garantir que les utilisateurs peuvent démarrer des tâches. lorsque la file d'attente ne peut pas

Lorsque la ressource minimale est atteinte, elle peut être préemptée des autres files d'attente. Lorsque les ressources de la file d'attente ne sont pas épuisées, elles peuvent être utilisées par d'autres files d'attente. Ceci est utile pour s'assurer que certains utilisateurs, groupes ou

Les applications de production obtiennent toujours suffisamment de ressources

Autoriser le partage des ressources : c'est-à-dire, lorsqu'une application est en cours d'exécution, si d'autres files d'attente n'ont aucune tâche à exécuter, d'autres files d'attente peuvent être utilisées. Lorsque d'autres files d'attente ont des applications qui ont besoin de ressources

Libérez ensuite la file d'attente occupée. Toutes les applications allouent des ressources à partir des files d'attente de ressources

Par défaut, il n'y a pas de limite au nombre d'applications exécutées simultanément par file d'attente et par utilisateur. Peut être configuré pour limiter le nombre d'applications que les files d'attente et les utilisateurs peuvent exécuter en parallèle. limiter le parallélisme

L'exécution du nombre d'applications n'entraînera pas l'échec de la soumission de la tâche et les applications en excès attendront dans la file d'attente.

Je suppose que tu aimes

Origine blog.csdn.net/qq_48391148/article/details/129835804
conseillé
Classement