Ich habe festgestellt, dass es zwei Gruppen von Hadoop-Konfigurationsparametern gibt: einen mit mapred. * und den anderen mit mapreduce. . Ich vermute, dass dies an der alten API gegenüber der neuen API liegen könnte, aber wenn ich mich nicht irre, scheinen diese in der neuen API zu existieren. Hab ich recht? Wenn ja, gibt es eine verallgemeinerte Aussage, was für mapred verwendet wird. und was ist für mapreduce. *?
Betrachtet man die Quelle für 0.20.2, gibt es nur wenige mapreduce.*
-Eigenschaften, und sie drehen sich um die Konfiguration des Job-Input / Output-Formats, Mapper / Combiner / Reducer und Partitionierungsklassen (sie signalisieren auch dem Job-Client, dass Die neue API wird vom Benutzer verwendet - schauen Sie sich die Quelle für o.a.h.mapreduce.Job
, setUseNewAPI()
Methode an)
mapreduce.inputformat.class
mapreduce.outputformat.class
mapreduce.partitioner.class
mapreduce.map.class
mapreduce.combine.class
mapreduce.reduce.class
Es gibt einige weitere Eigenschaften, aber sie sind sekundäre Konfiguration
Die Eingabe- und Ausgabeformate, egal ob es sich um neue oder alte API-Versionen handelt, verwenden normalerweise mapred.*
properties
Zum Beispiel reduzieren die Signale Ihrer Karte die Eingabewege, die Sie mapred.input.dir
verwenden (unabhängig davon, ob Sie die neue oder die alte API verwenden). Gleiches gilt für die Ausgabeeigenschaft mapred.output.dir
Also ist die lange und die kurze von wenn, wenn es keine Utility-Methode zum Konfigurieren der Eigenschaft ( FileInputFormat.setInputPaths(Job, String)
) gibt, dann müssen Sie die Quelle
Ja Mapred-Bibliothek ist veraltet. mapreduce-Bibliothek ist neu in hadoop 0.20.1 ..
Sie können jedoch weiterhin einige der von mapred angebotenen Funktionen verwenden, weshalb Sie sie immer noch im Verzeichnis finden.
Bitte schauen Sie sich diesen Link an, um zu erfahren, welche Funktionen Sie noch verwenden können: Ссылка