Foro Formación Hadoop

Ejercicio WritableComparable

 
Imagen de Antonio Jesús Baena Infantes
Ejercicio WritableComparable
de Antonio Jesús Baena Infantes - martes, 21 de febrero de 2017, 13:30
 

 Buenos días,

 Estoy con el ejercicio de implementar un WritableComparable donde el Reducer recibe un StringPairWritable como clave.

 En la solución viene efectivamente que el Mapper hace un write en context del StringPair y un LongWritable como valor.

En el driver también viene que la clave de salida del Reducer es StringPairWritable.class (job.setOutputKeyClass(StringPairWritable.class)).

 Mi cuestión es la siguiente puesto que no lo he visto en el archivo del driver: ¿en el código del Driver no se debería especificar las clases de la clave y valores de salida?:

job.setMapOutputKeyClass(StringPairWritable.class);
job.setMapOutputValueClass(LongWritable.class);

 Saludos,

Antonio Baena

 

Imagen de Fernando Agudo
Re: Ejercicio WritableComparable
de Fernando Agudo - martes, 21 de febrero de 2017, 15:38
 

Buenas tardes Antonio Jesús,

Cuando nos encontramos con una aplicación MapReduce que tiene como salida del Map los mismos tipos que la salida del Reducer se puede omitir la definición de los tipos de salida Map (MapOutputKeyClass y MapOutputValueClass).

Ese sería nuestro caso, ya que como salida del Map tenemos key=StringPairWritable y value=LongWritable y como salida del Reducer lo mismo.

En el caso de que los tipos fueran diferentes, sería obligatorio definir ambos tipos.

Un saludo,

Imagen de Antonio Jesús Baena Infantes
Re: Ejercicio WritableComparable
de Antonio Jesús Baena Infantes - martes, 21 de febrero de 2017, 16:04
 

Gracias,

 No me había dado cuenta del detalle de que ambos tenían la misma salida y hasta ahora solo me fijaba en comparar la salida del Map  con la entrada del Reducer. 

 Saludos,

Antonio Baena