YARN est un système distribué de gestion des ressources et un composant central de Hadoop. Il gère les ressources du cluster, planifie les jobs et supervise les tâches.
Terminologie
|
Nom |
Description |
|
ResourceManager |
Gère et planifie les ressources du cluster, et alloue ces ressources aux jobs exécutés sur YARN. Dans un cluster sans haute disponibilité (HA), ResourceManager est déployé sur le nœud maître EMR. Dans un cluster HA, il est déployé sur plusieurs nœuds maîtres pour assurer la haute disponibilité. |
|
NodeManager |
Gère les ressources, surveille l'état et exécute les jobs sur chaque nœud. Déployé sur les nœuds core ou task d'un cluster EMR. |
|
MapReduce History Server (MRHistoryServer) |
Analyse les métriques des jobs MapReduce et affiche leur statut d'exécution. Supprime également périodiquement les journaux d'agrégation expirés. |
|
TimelineServer |
Collecte les métriques des jobs et affiche leur statut d'exécution. Remarque
TimelineServer supervise uniquement l'utilisation des ressources par chaque job. Cela n'affecte ni le développement, ni l'exécution, ni la soumission des jobs de données. |
|
WebAppProxyServer |
Redirige les liens des jobs afin de réduire les attaques via le web. |
|
ApplicationMaster |
Gère le cycle de vie d'une application. ApplicationMaster négocie les ressources auprès de ResourceManager et collabore avec NodeManager pour exécuter et superviser les tâches. |
Avantages
YARN dans EMR offre les avantages suivants :
Les clusters HA déploient automatiquement YARN en mode haute disponibilité.
-
Simplification des opérations et de la maintenance (O&M).
La console permet d'ajouter des nœuds (scale-out), d'arrêter NodeManager et d'effectuer des redémarrages progressifs (rolling restarts).
-
Prise en charge de la supervision et des alertes.
Surveillez diverses métriques et configurez des alertes intelligentes.
-
Auto Scaling prend en charge l'arrêt gracieux (graceful shutdown).
Les nœuds attendent la fin des tâches en cours d'exécution avant de se mettre hors ligne, ce qui évite l'arrêt immédiat de NodeManager susceptible de provoquer l'échec et la réexécution des tâches.