2013-02-19 3 views
7

Bonjour, je suis nouveau dans Hadoop et c'est FileSystem. J'ai vu deux exemples différents de WordCount en utilisant JobConf et Configuration. Quelle est la différence en eux.JobConf v/s Configuration pour Hadoop 1.0.4

J'ai étudié que JobConf faisait partie de l'ancien paquet org.apache.hadoop.mapred (obsolète dans la version 0.2.x) mais la configuration fait partie du nouveau paquet org.apache.hadoop.mapreduce. Mais maintenant, dans v1.0.4, il n'est pas déprécié.

Actuellement, nous avons deux façons d'exécuter des tâches de réduction de carte dans Java, l'une consiste à utiliser (extension) des classes dans le package org.apache.hadoop.mapreduce et l'autre en implémentant des classes dans le package org.apache.hadoop.mapred.

Je veux savoir:

  1. Quelle est la différence entre la structure du paquet mapred et mapreduce et pourquoi mapred est un dépréciée?

  2. Quelle approche est la meilleure pour v1.0.4 à utiliser et pourquoi? JobConf ou Configuration?

  3. Quel est le meilleur pour v1.0.4? mapred ou mapreduce?

+0

duplication possible de [Est-il préférable d'utiliser le paquetage mapred ou mapreduce pour créer un Job Hadoop?] (Http://stackoverflow.com/questions/7598422/is-it-better-to-use-the- mapred-ou-le-mapreduce-paquet-pour-créer-un-hadoop-job) –

+0

J'ai lu cette réponse. Cette approche était pour v.20 et v.21/22. Mais ici, je demande à propos de v1.0.4. S'il vous plaît ne le connectez pas avec ça. Et ne prenez aucune décision avant de comprendre complètement. –

+0

1.0 n'est rien d'autre que la version entre 0,20 et 0,22. Voyez-le comme une version polie 20.x. Vous devriez rechercher les réponses existantes avant d'ajouter une nouvelle question, sans parler de la recherche de la numérotation des versions. –

Répondre

6

Si vous regardez dans the releases page, vous pouvez voir que 1.0.4 correspond à quelque chose autour 0.20.20x

Pour donner un peu de contexte, voici ce qui a été discuté on the mailing list:

The "old" MapReduce API in org.apache.hadoop.mapred was deprecated in the 0.20 
release series when the "new" (Context Objects) MapReduce API was added in 
org.apache.hadoop.mapreduce. Unfortunately, the new API was not complete in 0.20 
and most users stayed with the old API. This has led to the confusing situation 
where the old API is generally recommended, even though it is deprecated. 

Comme vous pouvez le voir, c'est principalement une question de rétrocompatibilité.

Ainsi, le fond est, si vous commencez votre demande maintenant avec 1.0.4 vous devez utiliser mapreduce et non mapred car il est le meilleur moyen maintenant, mais vous pouvez toujours utiliser l'ancien mapred si vous avez applications héritées. Ce qui implique que vous devrait utiliser Configuration.

Quant à la différence entre mapred et mapreduce, comme expliqué dans l'extrait ci-dessus, il provient principalement de l'introduction de Context objets, mais il y a un tas d'autres changements et de nouvelles classes qui ne sont pas disponibles dans l'ancien mapred.

Questions connexes