Necesito acceder a los contadores de mi mapeador en mi reductor. es posible? ¿Si es así, Cómo se hace?Accediendo al contador de un mapeador desde un reductor
A modo de ejemplo: mi asignador es:
public class CounterMapper extends Mapper<Text,Text,Text,Text> {
static enum TestCounters { TEST }
@Override
protected void map(Text key, Text value, Context context)
throws IOException, InterruptedException {
context.getCounter(TestCounters.TEST).increment(1);
context.write(key, value);
}
}
Mi reductor es
public class CounterReducer extends Reducer<Text,Text,Text,LongWritable> {
@Override
protected void reduce(Text key, Iterable<Text> values, Context context)
throws IOException, InterruptedException {
Counter counter = context.getCounter(CounterMapper.TestCounters.TEST);
long counterValue = counter.getValue();
context.write(key, new LongWritable(counterValue));
}
}
contravalor es siempre 0. ¿Estoy haciendo algo mal o es sólo no es posible?
El JobTracker mantiene un registro de los contadores. –