Essaie de déterminer s'il y a certains hooks disponibles dans le hadoop api (hadoop 2.0.0 mrv1) pour gérer l'asymétrie de données pour un réducteur. Scénario: Dispose d'une clé composite et d'un partitionneur personnalisés pour acheminer les données vers les réducteurs. Afin de traiter le cas impaire, mais très probablement un million de clés et de grandes valeurs finissant sur le même réducteur ont besoin d'une sorte d'heuristique afin que ces données puissent être partitionnées pour générer de nouveaux réducteurs. pensée Am d'un processus en deux étapesHadoop manipulant l'inclinaison des données dans le réducteur
- set mapred.max.reduce.failures.percent dire 10% et de laisser le travail complet
- réexécutez le travail sur les données ayant échoué fixées par le passage d'une configuration par le biais du pilote qui provoquera mon partitionneur à puis partitionner de manière aléatoire les données asymétriques. Le partitionneur implémente l'interface Configurable.
Existe-t-il un meilleur moyen?
Une contre-solution possible peut consister à écrire la sortie des mappeurs et à essorer un autre travail de mappage effectuant le travail du réducteur, mais ne pas mettre sous pression le namenode.
Oui, un problème avec ceci est qu'en quelque sorte mes données sont réparties uniformément de sorte qu'elles finissent dans différents mappeurs sous le nombre maximum alors je finirais toujours avec ce problème. L'autre problème peut être la quantité de clés qui sont stockées dans la carte, ce qui peut être résolu en utilisant un type de politique mru ... – sunny