2011-02-22 2 views
1

Je suis à la recherche d'un projet de recherche/implémentation basé sur Hadoop et je suis tombé sur la liste affichée sur la page wiki - http://wiki.apache.org/hadoop/ProjectSuggestions. Mais, cette page a été mise à jour pour la dernière fois en septembre 2009. Donc, je ne suis pas sûr si certaines de ces idées ont déjà été implémentées ou non. J'ai été particulièrement intéressé par «l'optimisation du tri et du shuffle dans le cadre MR» qui parle de «combiner les résultats de plusieurs cartes sur un rack ou un nœud avant le shuffle, ce qui peut réduire le travail de recherche et le stockage intermédiaire».Optimisation du tri et du shuffle dans Hadoop MapReduce

Est-ce que quelqu'un a déjà essayé cela? Est-ce implémenté dans la version actuelle de Hadoop?

Répondre

1

La description du projet vise "l'optimisation". Cette fonctionnalité est déjà présente dans l'actuelle Hadoop-MapReduce et elle peut probablement fonctionner beaucoup moins longtemps. Semble comme une amélioration précieuse pour moi.

2

Il y a la fonctionnalité de combinateur (comme décrit dans la section "Combine" de http://wiki.apache.org/hadoop/HadoopMapReduce), qui est plus ou moins un shuffle en mémoire. Mais je crois que le combineur n'agrège que les paires clé-valeur pour un travail de carte unique, pas toutes les paires pour un nœud ou un rack donné.

1

Je pense que c'est une tâche très difficile. Dans ma compréhension, l'idée est de faire un arbre de calcul au lieu de "plat" carte-réduire. Le bon exemple de celui-ci est le moteur Dremel de Google (appelé BigQuey maintenant). Je suggère de lire ce document: http://sergey.melnix.com/pub/melnik_VLDB10.pdf
Si vous êtes intéressé par ce type d'architecture - vous pouvez également jeter un oeil sur le clone open source de cette technologie - Open Dremel. http://code.google.com/p/dremel/