Java MAP_OUTPUT_记录值在reducer类中不断变化
我试图使用reducer类中的MAP\u OUTPUT\u RECORDS计数器来计算示例wordcount程序中的单词百分比 以下是减速器中的Java MAP_OUTPUT_记录值在reducer类中不断变化,java,hadoop,mapreduce,Java,Hadoop,Mapreduce,我试图使用reducer类中的MAP\u OUTPUT\u RECORDS计数器来计算示例wordcount程序中的单词百分比 以下是减速器中的setup()方法的代码: public static class IntSumReducer extends Reducer<Text,FloatWritable,Text,FloatWritable> { private FloatWritable result = new FloatWritable();
setup()
方法的代码:
public static class IntSumReducer extends
Reducer<Text,FloatWritable,Text,FloatWritable> {
private FloatWritable result = new FloatWritable();
private long total = 0;
@Override
public void setup(Context context) throws IOException , InterruptedException{
total = context.getCounter("org.apache.hadoop.mapred.Task$Counter", "MAP_OUTPUT_RECORDS").getValue();
System.out.println("total : " + total);
}
公共静态类IntSumReducer扩展
还原剂{
private floatwriteable result=新的floatwriteable();
私人长期合计=0;
@凌驾
公共无效设置(上下文上下文)引发IOException,InterruptedException{
total=context.getCounter(“org.apache.hadoop.mapred.Task$Counter”,“映射输出记录”).getValue();
系统输出打印项次(“总计:+总计);
}
这是最后一行中打印语句的输出:
总数:1131总数:487 总数:421
总数:333
总数:101
总数:101
总计:1995年
总数:185人
总数:0 我不明白:
setup()
方法?根据定义,应该在任务开始时只调用一次我希望这个答案有帮助。我不认为还原程序在所有映射程序完成工作之前就开始了。只有记录的洗牌开始了。你有多少个还原程序?我不认为还原程序在所有映射程序完成工作之前就开始了。只有记录的洗牌开始了。你有多少个还原程序?