如何在Reducer中访问Mapper Counter值?

sau*_*ank 7 java hadoop mapreduce

我想在reducer中访问myCounter.my值:

public static class Map extends Mapper<LongWritable, Text, ImmutableBytesWritable, ImmutableBytesWritable>
{
    public static enum myCounter{my};

    @Override
    public void map(LongWritable key, Text value, Context context) 
    {
        context.getCounter(myCounter.my).increment(1);
        context.write( new ImmutableBytesWritable ( ),new ImmutableBytesWritable() );
    }
}


public static class Reduce extends Reducer<ImmutableBytesWritable, ImmutableBytesWritable, Text, Text>
{
    @Override
    public void reduce(ImmutableBytesWritable key,Iterable<ImmutableBytesWritable> result,Context context)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

从reducer访问mapper的计数器(对于旧API) 如何使其适用于新API?

要么

我想知道映射器输出的总数?有没有更好的方法?(我无法访问Reducer中的计数器:

Group Name->org.apache.hadoop.mapred.Task$Counter Counter Name->MAP_OUTPUT_RECORDS)

谢谢

Azo*_*ous -2

您可以通过以下方式访问:

Map.myCounter.my // static fields you can access by it's class name.
Run Code Online (Sandbox Code Playgroud)