Per creare lavori MapReduce è possibile utilizzare il vecchio pacchetto org.apache.hadoop.mapred
o il nuovo pacchetto org.apache.hadoop.mapreduce
per Mapper e riduttori, Lavori ... Il primo era stato contrassegnato come deprecato, ma nel frattempo è stato ripristinato. Ora mi chiedo se sia meglio usare il vecchio pacchetto mapred o il nuovo pacchetto mapreduce per creare un lavoro e perché. O dipende solo dal fatto che tu abbia bisogno di cose come il MultipleTextOutputFormat che è disponibile solo nel vecchio pacchetto mapred?È meglio usare il pacchetto mapred o mapreduce per creare un lavoro Hadoop?
risposta
Funzionalità saggia non c'è molta differenza tra la vecchia (o.a.h.mapred
) e la nuova API (o.a.h.mapreduce
). L'unica differenza significativa è che i record vengono trasferiti al mapper/riduttore nella vecchia API. Mentre la nuova API supporta entrambi i meccanismi pull/push. È possibile ottenere ulteriori informazioni sul meccanismo di trazione here.
Inoltre, la vecchia API è stata un-deprecated da 0,21. Puoi trovare ulteriori informazioni sulla nuova API here.
Come hai menzionato alcune delle classi (come MultipleTextOutputFormat) non sono state migrate alla nuova API, a causa di questo e del motivo sopra menzionato è meglio attenersi alla vecchia API (anche se una traduzione è in genere abbastanza semplice).
C'è un motivo per cui i javadoc non ne menzionano nulla? – cmcginty
[Hadoop - The Definitive Guide] (http://shop.oreilly.com/product/0636920021773.do) ha la maggior parte del codice nella nuova API. –
Come nota a margine - MRUnit utilizza la nuova API, .mapreduce. Quindi se stai usando .mapred nel tuo codice, genererà errori. E tu non sarai felice. – wmute
Sia la vecchia che la nuova API sono buone. La nuova API è però più pulita. Utilizza la nuova API ovunque tu sia e utilizza la vecchia ovunque ti servano classi specifiche che non sono presenti nella nuova API (come MultipleTextOutputFormat
)
Ma fai attenzione a non utilizzare un mix di API vecchie e nuove in lo stesso lavoro di Mapreduce. Ciò porta a strani problemi.
Vecchio API (mapred)
esiste nel pacchetto org.apache.hadoop.mapred
fornire una mappa/ridurre configurazione del processo.
- Riduce i valori per una determinata chiave, sulla base del Iterator
- pacchetto Summary
Nuova API (MapReduce)
esiste nella confezione org.apache.hadoop.mapreduce
La configurazione del lavoro viene eseguita da una classe separata, chiamato JobConf che è exte nsion di configurazione
ClasseRiduce i valori per una determinata chiave, sulla base del Iterable
- 1. Configurazione Hadoop: mapred. * Vs mapreduce. *
- 2. Hadoop: Fornire la directory come input per il lavoro MapReduce
- 3. concatenamento Multi-Riduttori in un lavoro Hadoop MapReduce
- 4. Impossibile eseguire un lavoro MapReduce su hadoop 2.4.0
- 5. Introduzione a MapReduce/Hadoop
- 6. È possibile stampare l'output di Mapper e riduttore per un singolo lavoro in Hadoop Mapreduce
- 7. Hadoop MapReduce fornire le directory nidificate come input di lavoro
- 8. Le applicazioni non visualizzate nell'interfaccia utente del filato durante l'esecuzione di mapreduce il lavoro hadoop?
- 9. Quale è meglio usare ViewState o hiddenfield
- 10. Impossibile trovare o caricare la classe principale com.sun.tools.javac.Main hadoop mapreduce
- 11. È meglio usare Elenco o Raccolta?
- 12. È meglio usare un qualificatore non avido o un lookahead?
- 13. Hadoop MapReduce - un file di output per ciascun input
- 14. Come importare un modulo personalizzato in un lavoro MapReduce?
- 15. Hadoop MapReduce: è possibile definire due mapper e riduttori in una classe di lavoro hasdoop?
- 16. Hadoop MapReduce ha "Impossibile risolvere il nome host" errore
- 17. Quale è meglio usare Sencha Touch o PhoneGap per Android?
- 18. Trova il nome utente che ha ucciso il lavoro Hadoop
- 19. Concatenamento di Hadoop MapReduce con pipe (C++)
- 20. riutilizzare JVM in Hadoop mapreduce jobs
- 21. Eseguire il lavoro Hadoop senza utilizzare JobConf
- 22. Quale è meglio usare in CSS, percentuale o pixel?
- 23. Come posso inviare più di un lavoro a Hadoop in una fase utilizzando l'API Elastic MapReduce?
- 24. Classe “Combiner" in un lavoro MapReduce
- 25. Quale versione hadoop da usare?
- 26. Hadoop MapReduce I file di input multiple
- 27. Hadoop: come funziona OutputCollector durante MapReduce?
- 28. Perché è meglio usare filter_input()?
- 29. come implementare il calcolo degli autovalori con MapReduce/Hadoop?
- 30. scoperta significa usare maiale o di Hadoop
'ma questo meanwhile' ma ho ritornati siete sicuri? –
Es. Interface Mapper nel pacchetto org.apache.hadoop.mapred.lib in r0.21.0 non è contrassegnato come deprecato mentre è contrassegnato come deprecato in r0.20.2. – momo13