Tous les produits
Search
Centre de documentation

E-MapReduce:Réglage de la mémoire JVM

Dernière mise à jour :Aug 09, 2026

Réglez la mémoire JVM du NameNode et du DataNode pour améliorer la stabilité de HDFS.

Ajuster la mémoire JVM du NameNode

  • Contexte : Dans HDFS, le NameNode stocke les métadonnées des fichiers, ce qui consomme de la mémoire. La configuration JVM par défaut gère les charges de travail HDFS courantes, mais les charges comportant un grand nombre de fichiers ou dont le volume augmente peuvent dépasser la capacité mémoire par défaut. Dans ce cas, augmentez la mémoire allouée à la JVM.

  • Recommandation : Ajustez la taille de la mémoire JVM du NameNode comme suit :

    • Pour un cluster HA

      Dans la console EMR, accédez à la page Configure du service HDFS. Recherchez le paramètre hadoop_namenode_heapsize et définissez sa valeur selon vos besoins.

    • Pour un cluster non-HA

      Dans la console EMR, accédez à la page Configure du service HDFS. Recherchez les paramètres hadoop_namenode_heapsize et hadoop_secondary_namenode_heapsize et définissez leurs valeurs selon vos besoins.

      Remarque

      Pour appliquer les modifications, redémarrez le service NameNode ou SecondaryNameNode correspondant.

    Consultez le nombre de fichiers (Files) et de blocs (Blocks) sur l'interface web HDFS. Pour plus d'informations sur l'accès à l'interface web, consultez Accéder aux interfaces web des composants open source. Utilisez la formule suivante pour calculer la taille de la mémoire JVM du NameNode.

    Recommended value (MB) = (Number of files in millions + Number of blocks in millions) × 512

    Par exemple, si vous disposez de 10 millions de fichiers de petite à moyenne taille, où chaque fichier ne dépasse pas un bloc, le nombre de blocs est également de 10 millions. La taille mémoire recommandée est de (10 + 10) × 512 = 10 240 Mo.

    Le tableau suivant liste les valeurs recommandées pour les scénarios où la plupart des fichiers ne dépassent pas la taille d'un seul bloc.

    Nombre de fichiers

    Valeur recommandée (Mo)

    10 000 000

    10240

    20 000 000

    20480

    50 000 000

    51200

    100 000 000

    102400

Ajuster la taille de la mémoire JVM pour chaque DataNode

  • Informations contextuelles : Dans HDFS, les DataNodes enregistrent les métadonnées des blocs de données. Ces métadonnées occupent un espace mémoire spécifique. La configuration mémoire JVM par défaut peut répondre à certaines exigences courantes de HDFS. Parfois, davantage de fichiers sont écrits dans HDFS et le nombre de fichiers stockés augmente continuellement. Le nombre de blocs sur les DataNodes dépend du nombre de fichiers. Lorsque le nombre de nouveaux fichiers écrits dépasse la configuration d'espace mémoire par défaut, ces fichiers ne peuvent pas être stockés. Dans ce cas, modifiez la taille de la mémoire.

  • Suggestion : Accédez à l'onglet Configure sur la page du service HDFS dans la console EMR. Recherchez le paramètre hadoop_datanode_heapsize dans la section Configuration Filter et modifiez la valeur de ce paramètre en fonction de vos besoins métier.

    Utilisez la formule suivante pour calculer la taille de la mémoire JVM pour chaque DataNode :

    Number of replicas per DataNode in an EMR cluster = Number of data blocks × 3/Number of DataNodes
    Recommended memory size = Number of replicas per DataNode, measured in millions × 2048 MB
    Remarque

    Une fois la configuration terminée, redémarrez les DataNodes pour appliquer la configuration.

    Par exemple, HDFS dans un cluster EMR fournit un stockage triplé, les instances Elastic Compute Service (ECS) déployées dans le cluster EMR appartiennent à une famille d'instances big data et le nombre de nœuds principaux est de 6. Si vous avez 10 millions de fichiers et que le nombre de blocs de données est également de 10 millions car tous les fichiers sont de petite et moyenne taille, le nombre de réplicas par DataNode est de 5 000 000, calculé à l'aide de la formule suivante : (10 000 000 × 3/6). La taille mémoire recommandée est de 10 240 Mo, calculée à l'aide de la formule suivante : 5 × 2048 Mo.

    Le tableau suivant décrit la correspondance entre le nombre de réplicas par DataNode et la taille mémoire recommandée. La taille de la plupart des fichiers ne dépasse pas la taille d'un bloc.

    Nombre de réplicas par DataNode Taille mémoire recommandée (Mo)
    1 000 000 2048
    2 000 000 4096
    5 000 000 10240
    Remarque

    La valeur recommandée inclut l'espace mémoire pour le noyau JVM et l'espace mémoire nécessaire à l'exécution des tâches pendant les heures de pointe. Vous pouvez directement utiliser la valeur recommandée dans des circonstances normales.