Decir que tengo valores de sellos de tiempo para los usuarios específicos en archivos de texto, comocómo analizar CustomWritable de texto en Hadoop
#userid; unix-timestamp; value
1; 2010-01-01 00:00:00; 10
2; 2010-01-01 00:00:00; 20
1; 2010-01-01 01:00:00; 11
2; 2010-01-01 01:00:00, 21
1; 2010-01-02 00:00:00; 12
2; 2010-01-02 00:00:00; 22
tengo una clase personalizada "SessionSummary" implementar readFields y escritura de WritableComparable. Su propósito es resumir todos los valores por usuario para cada día calendario.
Así que el correlaciona las líneas a cada usuario, el reductor resume todos los valores por día por usuario y emite una SessionSummary como TextOutputFormat (usando toString de SessionSummary, como cadenas UTF-8 separados por tabuladores):
1; 2010-01-01; 21
2; 2010-01-01; 41
1; 2010-01-02; 12
2; 2010-01-02; 22
Si necesito utilizar estas sumarias-entradas para un segundo map/reduce el escenario, ¿cómo debería analizar estos datos resumidos para poblar los miembros? ¿Puedo reutilizar los readFields y los métodos de escritura existentes (de la implementación de interfaz WritableComparable) utilizando la cadena de texto como DataInput de alguna manera? Este (obviamente) no funcionó:
public void map(...) {
SessionSummary ssw = new SessionSummary();
ssw.readFields(new DataInputStream(new ByteArrayInputStream(value.getBytes("UTF-8"))));
}
En general: ¿Hay una mejor práctica para implementar teclas personalizadas y valores en Hadoop y hacerlos fácilmente reutilizables a través de varias etapas M/R, mientras se mantiene el texto legible por humanos salida en cada etapa?
(versión 0.20.2 es Hadoop/CDH3u3)
Gracias Chris! Entonces, para el segundo trabajo de MR, establezco conf.setInputFormat (SequenceFileInputFormat.class), y la clave de Mapper y las clases de valores son las mismas que en la salida del primer Reducer, ¿correcto? – thomers
Eso es correcto. –
¿Cómo configuro explícitamente la clave de Mapper y las clases de valor para el segundo trabajo de MR? Estoy probando con IdentityMapper, y espera que Text sea la clave. – thomers