2013-02-19 8 views
7

Hallo Ich bin neu in Hadoop und es ist FileSystem. Ich sah zwei verschiedene Beispiele von WordCount mit JobConf und Configuration. Was ist der Unterschied in ihnen?JobConf v/s Konfiguration für Hadoop 1.0.4

Ich studierte, dass JobConf war Teil der alten Paket org.apache.hadoop.mapred (die in 0.20.x veraltet), aber die Konfiguration ist Teil des neuen Pakets org.apache.hadoop.mapreduce. Aber jetzt in v1.0.4 ist es nicht mehr veraltet.

Zur Zeit haben wir zwei Möglichkeiten, map reduce jobs in Java auszuführen. Eine davon ist die Verwendung (erweiterender) Klassen in org.apache.hadoop.mapreduce Paket und andere durch Implementieren von Klassen im org.apache.hadoop.mapred Paket.

Ich möchte wissen:

  1. Was ist der Unterschied zwischen mapred und mapreduce Paketstruktur und warum ist mapred un-veraltet?

  2. Welcher Ansatz ist besser für v1.0.4 zu verwenden und warum? JobConf oder Configuration?

  3. Was ist besser für v1.0.4? mapred oder mapreduce?

+0

mögliches Duplikat von [Ist es besser, das mapred- oder mapreduce-Paket zum Erstellen eines Hadoop-Jobs zu verwenden?] (Http://stackoverflow.com/questions/7598422/is-it-better-to-use-the- mapred-or-the-mapreduce-package-zu-erstellen-a-hadoop-job) –

+0

Ich habe diese Antwort gelesen. Dieser Ansatz war für v0.20 und v0.21/22. Aber hier frage ich nach v1.0.4. Bitte verbinde es nicht damit. Und treffen Sie keine Entscheidung, bevor Sie vollständig verstanden haben. –

+0

1.0 ist nichts anderes als die Version zwischen 0,20 und 0,22. Sehen Sie es als eine polierte Version 20.x. Sie sollten nach vorhandenen Antworten suchen, bevor Sie eine neue Frage hinzufügen, ganz zu schweigen von der Suche nach der Versionsnummerierung. –

Antwort

6

Wenn Sie in the releases page anschaut, kann man sehen, dass 1.0.4 etwas entspricht 0.20.20x um

etwas Kontext zu geben, hier ist das, was on the mailing list diskutiert wurde:

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. 

Also, wie Sie sehen können, ist es hauptsächlich eine Frage der Retro-Kompatibilität.

Unterm Strich also ist, wenn Sie Ihre Anwendung beginnen jetzt mit 1.0.4 Sie mapreduce verwenden sollten und nicht mapred, da es der bevorzugte Weg ist jetzt, aber Sie können noch die alte mapred verwenden, wenn Sie Legacy-Anwendungen. Was bedeutet, dass Sie sollten verwenden Configuration.

Was den Unterschied zwischen mapred und mapreduce, wie in dem Extrakt oben erklärte es vor allem durch die Einführung von Context Objekten kommt, aber es gibt ein paar andere Änderungen und neue Klassen, die nicht in den alten mapred sind.

Verwandte Themen