2013-02-19 17 views
7

Witam Jestem nowy w Hadoop i jest to FileSystem. Widziałem dwa różne przykłady WordCount przy użyciu JobConf i Configuration. Jaka jest w nich różnica.JobConf v/s Konfiguracja dla Hadoop 1.0.4

Studiowałem, że JobConf był częścią starego pakietu org.apache.hadoop.mapred (to przestarzałe w 0.20.x), ale Konfiguracja jest częścią nowego pakietu org.apache.hadoop.mapreduce. Ale teraz w wersji 1.0.4 jest niezaakceptowany.

Obecnie mamy dwa sposoby uruchamiania zadań zmniejszania map w języku Java, jednym jest używanie (rozszerzanie) klas w pakiecie org.apache.hadoop.mapreduce, a inne realizowane są za pomocą pakietów w pakiecie org.apache.hadoop.mapred.

chcę wiedzieć:

  1. Jaka jest różnica między mapred i mapreduce struktury pakiet i dlaczego mapred jest un-przestarzałe?

  2. Które podejście jest lepsze dla wersji 1.0.4 i dlaczego? JobConf lub Configuration?

  3. Co jest lepsze dla wersji 1.0.4? mapred lub mapreduce?

+0

możliwy duplikat [czy lepiej użyć pakietu mapred lub mapreduce, aby utworzyć zadanie Hadoop?] (Http://stackoverflow.com/questions/7598422/is-it-better-to-use-the- mapred-or-the-mapreduce-package-to-create-a-hadoop-job) –

+0

Przeczytałem tę odpowiedź. Takie podejście było dla v0.20 i v0.21/22. Ale tutaj pytam o v1.0.4. Nie łącz tego z tym. I nie podejmuj żadnej decyzji, zanim zrozumiesz ją całkowicie. –

+0

1.0 to nic innego jak wersja między 0.20 a 0.22. Zobacz go jako wypolerowaną wersję 20.x. Należy szukać istniejących odpowiedzi przed dodaniem nowego pytania, nie wspominając już o badaniu numeracji wersji. –

Odpowiedz

6

Jeśli spojrzeć w the releases page, można zobaczyć, że coś 1.0.4 odpowiada około 0.20.20x

Aby dać pewien kontekst, o to co było dyskutowane 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. 

Jak widać, jest to głównie kwestia retro-kompatybilności.

Więc dolnej linii jest, jeśli zaczynają swoją aplikację teraz z 1.0.4 ty powinny używać mapreduce i nie mapred ponieważ jest to preferowany sposób teraz, ale może nadal używać starej mapred jeśli masz starsze aplikacje. Co oznacza, że ​​należy należy użyć .

chodzi o różnicę między mapred i mapreduce, jak wyjaśniono w ekstrakcie powyżej pochodzi głównie z wprowadzenia Context obiektów, ale istnieje kilka innych zmian i nowych klas, które nie są dostępne w starym mapred.