“GC Généraux limite dépassée” sur Hadoop .20 datanode

J'ai cherché mais pas trouver de nombreuses informations liées à Hadoop Datanode processus de mourir en raison de GC généraux limite dépassée, donc je pensais que je poste une question.

Nous sommes exécution d'un test où nous devons confirmer notre cluster Hadoop peuvent prendre en charge ~3millions fichiers stockés sur elle (actuellement 4 nœud de cluster). Nous sommes à l'aide d'une JVM 64 bits et nous avons alloué 8g pour le namenode. Cependant, comme mon programme de test écrit plus de fichiers DFS, les datanodes commencent à mourir avec cette erreur:
Exception in thread "DataNode: [/var/hadoop/data/hadoop/données]" java.lang.OutOfMemoryError: GC généraux limite dépassée

J'ai vu quelques posts au sujet de certaines options (parallèle GC?) Je suppose que ce qui peut être mis en hadoop-env.sh mais je ne suis pas trop sûr de la syntaxe et je suis un peu un newbie, donc je n'ai pas assez grok comment c'est fait.
Merci pour toute l'aide ici!

  • Juste une mise à jour ici pour les gens: @1,5 million de fichiers dfs, quand mon JVM 64 bits était à 1g (par défaut), les données des nœuds commencent à mourir avec cette erreur. Quand je l'ai fait monter à la 2g, il s'en alla jusqu'à ce que j'ai environ 3 millions de fichiers. Je me demandais si ce type de mémoire ballonnement est un problème connu ou non et, dans l'affirmative, quelles autres recommandations puis-je essayer de le réparer?
  • comme Tejas Patil mentionné, la taille de bloc par défaut est de 64 mo. Hadoop charge des métadonnées pour chaque fichier dans la mémoire à chaque fois qu'il s'exécute. Les fichiers plus vous avez, plus de mémoire qu'elle va prendre. Si ces fichiers sont beaucoup plus petits que la taille de bloc par défaut et vous avez la possibilité de le faire, essayez de combiner les fichiers en fichiers plus gros de magasin de HDFS. juste une pensée 🙂