J'ai un grand nombre de divisions d'entrée (environ 50.000) créées par de petits fichiers que je veux traiter avec Hadoop. J'ai, cependant, seulement 256 conteneurs disponibles pour le traiter.JVM Réutiliser MapReduce 2.0 YARN
Le travail lui-même utilise beaucoup de CPU mais peu de mémoire.
J'utilise Hadoop 2.3 et a été jeter un oeil dans la fonction de réutilisation JVM de MapReduce 1.0
J'ai aussi lu sur les tâches uber, mais il n'a pas l'air d'la même chose - ou j'avais un autre comprendre à partir de la réutilisation JVM. Comme j'ai beaucoup de petits fichiers (et que je génère un inputSplit par fichier), je voulais créer une seule machine JVM par conteneur et exécuter autant de tâches Map séquentielles que possible par JVM déjà allouée. Cela réduirait le temps système alloué par la JVM.
Je suppose que pour chaque division d'entrée un nouveau mappeur serait alloué et donc une nouvelle JVM, ai-je raison?
Comment puis-je faire une telle chose dans YARN? Oh, je sais aussi que je peux utiliser la compression pour augmenter la taille de l'inputSplit, mais pour cette application exacte, ce n'est pas viable.
Cordialement, Marco Lotz