¿Es posible tener múltiples entradas con múltiples mapeadores diferentes en Hadoop MapReduce? Cada clase de asignador trabaja en un conjunto diferente de entradas, pero todas emitirían pares clave-valor consumidos por el mismo reductor. Tenga en cuenta que no estoy hablando de encadenar mapeadores aquí, estoy hablando de ejecutar diferentes mapeadores en paralelo, no secuencialmente.¿Es posible tener múltiples entradas con múltiples mapeadores diferentes en Hadoop MapReduce?
Respuesta
Esto se conoce como unión.
Desea utilizar los correlacionadores y reductores en los paquetes mapred. * (Más antiguos, pero aún compatibles). Los paquetes más nuevos (mapreduce. *) Solo permiten una entrada de mapeador. Con los paquetes de mapred, se utiliza la clase MultipleInputs para definir la unión:
MultipleInputs.addInputPath(jobConf,
new Path(countsSource),
SequenceFileInputFormat.class,
CountMapper.class);
MultipleInputs.addInputPath(jobConf,
new Path(dictionarySource),
SomeOtherInputFormat.class,
TranslateMapper.class);
jobConf.setJarByClass(ReportJob.class);
jobConf.setReducerClass(WriteTextReducer.class);
jobConf.setMapOutputKeyClass(Text.class);
jobConf.setMapOutputValueClass(WordInfo.class);
jobConf.setOutputKeyClass(Text.class);
jobConf.setOutputValueClass(Text.class);
voy a responder a su pregunta con otra pregunta, 2 respuestas, y un anti-recomendación.
La pregunta es: ¿qué beneficio se ve al ejecutar los trabajos de mapas heterogéneos en paralelo, en lugar de ejecutarlos en serie, generando resultados homogéneos que se pueden barajar correctamente? ¿La idea es evitar pasar los mismos registros dos veces, una vez con un mapa de identidad?
La primera respuesta es programar simultáneamente ambos trabajos de asignador, cada uno en la mitad de su flota (o la proporción que mejor se adapte al tamaño de datos de entrada), generando resultados homogéneos, seguido de un trabajo de reductor que realiza la unión.
La segunda respuesta es crear un archivo de entrada personalizado que sea capaz de reconocer y transformar ambos sabores de la entrada heterogénea. Esto es extremadamente feo, pero te permitirá evitar el mapa de identidad innecesario de la primera sugerencia.
La contra-recomendación es no usa las API Hadoop obsoletas de la respuesta de Chris. Hadoop es muy joven, pero las API se están estabilizando en torno al "nuevo" sabor. Llegará a la versión de bloqueo eventualmente.
La razón para ejecutar varios mapeadores es que usted puede implemente una operación de aplanar como se indica en el papel FlumeJava. La salida de los diferentes mapeadores puede participar en la misma operación de mezcla. – tibbe
- 1. Hadoop MapReduce: ¿es posible definir dos mapeadores y reductores en una clase de trabajo de hadoop?
- 2. ejecutando múltiples trabajos de MapReduce en hadoop
- 3. Ordenando datos grandes usando MapReduce/Hadoop
- 4. Entradas múltiples con MRJob
- 5. Encadenando múltiples tareas de mapreduce en la transmisión de Hadoop
- 6. ¿Es posible tener cifrado con múltiples claves privadas (PHP)?
- 7. Comenzando con MapReduce/Hadoop
- 8. ¿Es posible depurar múltiples hilos en eclipse en diferentes ventanas?
- 9. Cuando uso HBase como fuente para MapReduce, ¿puedo extender TableInputFormatBase para crear divisiones múltiples y mapeadores múltiples para cada región?
- 10. ¿Es posible usar múltiples ehcache.xml (en diferentes proyectos, misma guerra)?
- 11. ¿Es posible tener múltiples PropertyPlaceHolderConfigurer en mi applicationContext?
- 12. ¿Puedo tener $ _GET múltiples con la misma clave, diferentes valores?
- 13. ¿Es posible tener múltiples atributos de datos- {nombre} en HTML5?
- 14. Error en Hadoop MapReduce
- 15. es posible tener múltiples instancias de variables estáticas
- 16. Android: ¿Es posible tener múltiples preferencias compartidas distintas por aplicación?
- 17. ¿Es posible desactivar la ordenación en hadoop?
- 18. Entradas múltiples en una línea
- 19. Jackson - JSON para POJO con entradas múltiples
- 20. Idea de proyecto con Hadoop MapReduce
- 21. Múltiples archivos como entrada en Amazon Elastic MapReduce
- 22. Cómo permitir múltiples entradas múltiples botones cuando se seleccionan
- 23. Hadoop o Hadoop Streaming para MapReduce en AWS
- 24. Múltiples tiendas y administradores múltiples con diferentes roles
- 25. ¿Es posible tener un rol web con múltiples dominios y certificados SSL en Windows Azure?
- 26. Ravendb mapreduce agrupar por campos múltiples
- 27. ¿Cómo se usa MapReduce/Hadoop?
- 28. ¿Es posible combinar múltiples atributos en F #?
- 29. ¿es posible establecer múltiples colores en UILabel?
- 30. Salida intermedia de Hadoop MapReduce
Las apis más nuevas ('mapreduce' not' mapred') tienen 'MultipleInputs': http://hadoop.apache.org/common/docs/r1.0.3/api/org/apache/hadoop/mapreduce/lib /input/MultipleInputs.html –
@Donald Miner: Absolutamente correcto. –
@DonaldMiner Algunas versiones sí, pero parece que al menos 0.20.x no lo hace, p. tenga en cuenta la falta de MultipleInputs aquí: http://hadoop.apache.org/docs/r0.20.205.0/api/org/apache/hadoop/mapreduce/lib/input/ – kabuko