Tous les produits
Search
Centre de documentation

E-MapReduce:Configurations of YARN resources

Dernière mise à jour :Aug 09, 2026

À partir des versions EMR 3.49.0 et 5.15.0, EMR définit dynamiquement les valeurs de mémoire par défaut pour les composants YARN lors de la création du cluster, en fonction des types d'instance sélectionnés et des services déployés. Ajustez ces valeurs dans la console EMR après la création du cluster.

Remarque

Si les composants YARN reçoivent moins de mémoire que prévu après l'initialisation du cluster, vérifiez les points suivants :

  • Le nombre de services déployés dans le cluster. EMR répartit la mémoire disponible entre tous les services déployés ; ainsi, plus il y a de services, moins chaque composant dispose de mémoire.

  • La conformité des spécifications des instances Elastic Compute Service (ECS) du groupe de nœuds avec les exigences en matière de mémoire de tous les services déployés.

Taille du tas (heap) pour les composants YARN

Dans l'onglet Configure de la page du service YARN de la console EMR, configurez les paramètres suivants dans les fichiers yarn-env.sh ou mapred-env.sh. Tous les paramètres s'appliquent au niveau du cluster et nécessitent un redémarrage des composants pour prendre effet.

Component

Parameter

Config file

When to adjust

Constraints

ResourceManager

YARN_RESOURCEMANAGER_HEAPSIZE

yarn-env.sh

Ralentissement du ResourceManager dû à un volume élevé de petites tâches

Valeur minimale : 1024. Redémarrez ResourceManager pour appliquer la modification.

NodeManager

YARN_NODEMANAGER_HEAPSIZE

yarn-env.sh

Déclenchement du garbage collection (GC) complet car Shuffle Service occupe une mémoire excessive du NodeManager

Redémarrez NodeManager pour appliquer la modification.

WebAppProxyServer

YARN_PROXYSERVER_HEAPSIZE

yarn-env.sh

La valeur par défaut est insuffisante

Redémarrez WebAppProxyServer pour appliquer la modification.

TimelineServer

YARN_TIMELINESERVER_HEAPSIZE

yarn-env.sh

La valeur par défaut est insuffisante

Redémarrez TimelineServer pour appliquer la modification.

TimelineServer

-XX:MaxDirectMemorySize dans YARN_TIMELINESERVER_OPTS

yarn-env.sh

Pression sur la mémoire directe de TimelineServer

Valeur minimale : 512m. Redémarrez TimelineServer pour appliquer la modification.

MRHistoryServer

HADOOP_JOB_HISTORYSERVER_HEAPSIZE

mapred-env.sh

La valeur par défaut est insuffisante

Redémarrez MRHistoryServer pour appliquer la modification.

Configuration des ressources du cluster pour YARN

Dans l'onglet Configure de la page du service YARN de la console EMR, configurez les paramètres yarn-site.xml suivants.

Limites d'allocation du planificateur

Ces paramètres s'appliquent au niveau du cluster et contrôlent les plafonds et les seuils minimaux des ressources par conteneur. Les modifications nécessitent un redémarrage de ResourceManager.

Parameter

Description

Default

When to adjust

yarn.scheduler.maximum-allocation-mb

Mémoire maximale qu'un seul conteneur peut demander au planificateur

Augmentez cette valeur pour les charges de travail qui soumettent des tâches volumineuses dans un seul conteneur. Une valeur excessivement élevée peut entraîner une fragmentation des ressources.

yarn.scheduler.minimum-allocation-mb

Mémoire minimale qu'un seul conteneur peut demander au planificateur

Ce paramètre nécessite rarement un ajustement.

yarn.scheduler.maximum-allocation-vcores

Nombre maximal de vCPU qu'un seul conteneur peut demander au planificateur

32

Augmentez cette valeur pour les charges de travail qui soumettent des tâches volumineuses dans un seul conteneur. Une valeur excessivement élevée peut entraîner une fragmentation des ressources.

yarn.scheduler.minimum-allocation-vcores

Nombre minimal de vCPU qu'un seul conteneur peut demander au planificateur

1

Ce paramètre nécessite rarement un ajustement.

Limites de ressources du NodeManager

Ces paramètres s'appliquent au niveau du groupe de nœuds. Lors de leur configuration, sélectionnez Node group level configuration dans la console EMR ; sinon, la modification ne prendra pas effet. EMR prend en charge différents types d'instances au sein des groupes de nœuds, toutes les instances ECS d'un même groupe de nœuds partageant le même type d'instance. La configuration des ressources NodeManager au niveau du groupe de nœuds évite la surcharge des nœuds plus petits et la sous-utilisation des nœuds plus grands.

Parameter

Description

Default

When to adjust

yarn.nodemanager.resource.memory-mb

Mémoire physique totale disponible pour les conteneurs via NodeManager

Définie lors de la création du cluster en fonction du type d'instance

Configurez ce paramètre en fonction de votre déploiement de cluster. Redémarrez NodeManager pour appliquer la modification.

yarn.nodemanager.resource.cpu-vcores

Nombre total de vCPU disponibles pour les conteneurs via NodeManager

Nombre de vCPU correspondant au type d'instance. Pour les types d'instance à haute mémoire, la valeur par défaut correspond au double du nombre de vCPU d'un type d'instance à mémoire standard.

Ajustez ce paramètre en fonction des caractéristiques de la charge de travail. Redémarrez NodeManager pour appliquer la modification.

Relation entre la mémoire du planificateur et celle du NodeManager

La valeur de yarn.scheduler.maximum-allocation-mb doit être supérieure à celle de yarn.nodemanager.resource.memory-mb afin de garantir une planification correcte des tâches.

Tenez compte des points suivants lors de la gestion de ces deux paramètres :

  • EMR vous permet de configurer les deux paramètres lors de la création d'un cluster ou lors de la première mise à l'échelle horizontale par ajout d'un groupe de nœuds.

  • Lorsque vous mettez à niveau les spécifications d'instance d'un groupe de nœuds ou modifiez manuellement yarn.nodemanager.resource.memory-mb, yarn.scheduler.maximum-allocation-mb n'est pas mis à jour automatiquement. Mettez-le à jour manuellement si nécessaire.

  • Lors de la première configuration de yarn.scheduler.maximum-allocation-mb pour un nouveau groupe de nœuds, ResourceManager n'est pas redémarré automatiquement. Redémarrez manuellement ResourceManager pour appliquer la modification.

Remarque

Le redémarrage de ResourceManager peut entraîner l'échec des tâches en cours d'exécution. Effectuez le redémarrage pendant les heures creuses.