Para crear trabajos de MapReduce puede usar el paquete org.apache.hadoop.mapred
antiguo o el paquete org.apache.hadoop.mapreduce
más reciente para Mappers y Reductores, Trabajos ... El primero se marcó como obsoleto, pero esto se revirtió mientras tanto. Ahora me pregunto si es mejor usar el viejo paquete mapred o el nuevo paquete mapreduce para crear un trabajo y por qué. ¿O solo depende de si necesita cosas como MultipleTextOutputFormat, que solo está disponible en el paquete mapred anterior?¿Es mejor usar el paquete mapred o mapreduce para crear un trabajo de Hadoop?
Respuesta
Funcionalidad sabia que no hay mucha diferencia entre el antiguo (o.a.h.mapred
) y el nuevo (o.a.h.mapreduce
) API. La única diferencia significativa es que los registros se envían al asignador/reductor en la antigua API. Mientras que la nueva API admite ambos mecanismos de extracción/extracción. Puede obtener más información sobre el mecanismo de extracción here.
Además, la antigua API ha sido un-deprecated desde 0.21. Puede encontrar más información sobre la nueva API here.
Como mencionó algunas de las clases (como MultipleTextOutputFormat) no se han migrado a la nueva API, debido a esto y al motivo mencionado anteriormente, es mejor seguir con la API anterior (aunque una traducción suele ser bastante simple).
¿Hay alguna razón por la cual los javadocs no mencionan nada de esto? – cmcginty
[Hadoop - La guía definitiva] (http://shop.oreilly.com/product/0636920021773.do) tiene la mayor parte del código en la nueva API. –
Como nota al margen: MRUnit usa la nueva API, .mapreduce. Entonces, si estás usando .mapred en tu código, lanzará errores. Y no vas a ser feliz. – wmute
Tanto la API anterior como la nueva son buenas. La nueva API es más limpia. Use la nueva API siempre que pueda y use la antigua donde necesite clases específicas que no estén presentes en la nueva API (como MultipleTextOutputFormat
)
Pero tenga cuidado de no usar una combinación de las API antiguas y nuevas en el mismo trabajo de Mapreduce. Eso lleva a problemas extraños.
API Viejo (mapred)
existe en paquete org.apache.hadoop.mapred
proporcionar un mapa/reducir la configuración de la tarea.
- Reduce los valores de una clave determinada, basado en el iterador
- paquete Summary
Nueva API (mapreduce)
Existe en paquete org.apache.hadoop.mapreduce
La configuración del trabajo se realiza por clase separada, llamada JobConf que es exte nsion de configuración
ClaseReduce los valores de una clave determinada, en base a la Iterable
- 1. Configuración de Hadoop: mapred. * Vs mapreduce. *
- 2. Hadoop o Hadoop Streaming para MapReduce en AWS
- 3. Hadoop MapReduce proporcionar directorios anidados como entrada para el trabajo
- 4. Hadoop MapReduce: Driver para encadenar creadores de mapas dentro de un trabajo MapReduce
- 5. Hadoop MapReduce: ¿es posible definir dos mapeadores y reductores en una clase de trabajo de hadoop?
- 6. Comenzando con MapReduce/Hadoop
- 7. Salida intermedia de Hadoop MapReduce
- 8. Error en Hadoop MapReduce
- 9. Hadoop MapReduce - un archivo de salida para cada entrada
- 10. Idea de proyecto con Hadoop MapReduce
- 11. Amazon MapReduce sin trabajo de reductor
- 12. ¿Cómo se usa MapReduce/Hadoop?
- 13. ejecutando múltiples trabajos de MapReduce en hadoop
- 14. Hadoop mapreduce la transmisión desde HBase
- 15. reutilizar JVM en trabajos mapreduce de Hadoop
- 16. Encontrar componentes conectados usando Hadoop/MapReduce
- 17. Recuento de palabras ordenadas usando Hadoop MapReduce
- 18. Ordenando datos grandes usando MapReduce/Hadoop
- 19. Hadoop MapReduce: Tamaño de archivo de entrada apropiado?
- 20. ¿Qué versión de hadoop usar?
- 21. Cómo imprimir en la consola durante la ejecución del trabajo de MapReduce en hadoop
- 22. ¿Cómo puedo incluir un paquete de Python con el trabajo de transmisión de Hadoop?
- 23. Clase “Combiner" en un trabajo mapreduce
- 24. Lectura programática del resultado del programa Mapreduce de Hadoop
- 25. Hadoop: ¿Cómo funciona OutputCollector durante MapReduce?
- 26. cómo implementar el cálculo de valores propios con MapReduce/Hadoop?
- 27. Algoritmo del coeficiente de agrupamiento local distribuido (MapReduce/Hadoop)
- 28. ¿Qué es mejor usar: Convert.ToX o X.Parse (...)?
- 29. Encadenando múltiples tareas de mapreduce en la transmisión de Hadoop
- 30. Ejecutar trabajo de Hadoop sin utilizar JobConf
'pero esta meanwhile' consiguió revertidas ¿está seguro? –
P. ej. Interface Mapper en el paquete org.apache.hadoop.mapred.lib en r0.21.0 no está marcado como obsoleto mientras está marcado como obsoleto en r0.20.2. – momo13