2014-07-16 8 views
1

J'ai parcouru beaucoup de blogs sur stackoverflow et également sur apache wiki pour apprendre à connaître la manière dont les mappeurs sont définis dans Hadoop. J'ai également passé par [hadoop - how total mappers are determined [ce] message. Certains disent que c'est basé sur InputFormat et certains messages disent que c'est basé sur le nombre de blocs dans lesquels l'identifiant du fichier d'entrée se divise.Définition des mappeurs des nombres souhaités

Certains comment je suis confus par le réglage par défaut. Lorsque j'exécute un exemple de compte de mots, je vois que les mappeurs sont faibles. 2. Que se passe-t-il réellement dans le réglage? Aussi ce message [http://svn.apache.org/repos/asf/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-examples/src/main/java/org/apache/hadoop/examples/QuasiMonteCarlo.java] [programme d'exemple]. Ici, ils définissent les mappeurs en fonction de l'entrée de l'utilisateur. Comment peut-on faire manuellement ce réglage?

J'apprécierais vraiment pour l'aide et la compréhension du fonctionnement des mappeurs.

Merci à l'avance

Répondre

0

Utiliser les propriétés du système Java mapred.min.split.size et mapred.max.split.size pour guider Hadoop d'utiliser la taille de division que vous voulez. Cela ne fonctionnera pas toujours - en particulier lorsque vos données sont dans un format de compression non séparable (par exemple, gz, mais bzip2 est séparable). Par conséquent, si vous voulez plus de mappeurs, utilisez une taille de division plus petite. Simple!

(Mise à jour comme demandé) Maintenant, cela ne fonctionnera pas pour de nombreux petits fichiers, en particulier, vous vous retrouverez avec plus de mappeurs que vous le souhaitez. Pour cette situation, utilisez CombineFileInputFormat ... dans Scalding this SO explique: Create Scalding Source like TextLine that combines multiple files into single mappers

+0

Bonjour @Sam: Merci pour votre réponse. Je comprends votre point de vue sur le nombre de mappeurs basé sur mapred.min.split.size, mais ma taille d'entrée est si petite, que cette méthode n'aide pas vraiment. J'ai trouvé un moyen de contourner, où on peut décider en fonction de InputFormat, où l'on peut le définir de manière plus flexible [exemple] (http://www.philippeadjiman.com/blog/2009/12/20/hadoop-tutorial-series-issue -2-getting-started-avec-partitionnement personnalisé /). Merci – user3560220

+0

@ user3560220 Ah ok, je c, j'ai mis à jour la réponse. – samthebest

+0

merci samthebest – user3560220