清理未在减速器中运行

乔仁

我一直在玩Cloudera VM 4.7中的Hadoop 2.0。我正在尝试以文档描述如何使用cleanup方法打印出5个最常用的单词但是它根本不会被调用。

public static class Reduce extends MapReduceBase implements
        Reducer<Text, IntWritable, Text, IntWritable> {

    private java.util.Map<String, Integer> top5 = new HashMap<String, Integer>(5);

    public void reduce(Text key, Iterator<IntWritable> values,
            OutputCollector<Text, IntWritable> output, Reporter reporter)
            throws IOException {
        int sum = 0;
        while (values.hasNext()) {
            sum += values.next().get();
        }
        reporter.getCounter(statistics.UNIQUE_TERMS).increment(1);
        if (sum < 5) {
            reporter.getCounter(statistics.LT5_TERM).increment(1);
        }

        if (this.top5.size() < 5) {
            top5.put(key.toString(), sum);
        } else {
            for (Entry<String, Integer> e : this.top5.entrySet()) {
                if (sum > e.getValue()) {
                    this.top5.remove(e.getKey());
                    this.top5.put(key.toString(), sum);
                    break;
                }
            }
        }

        output.collect(key, new IntWritable(sum));
    }

    protected void cleanup(org.apache.hadoop.mapreduce.Reducer.Context context) throws IOException, InterruptedException {
        System.out.println(this.top5);
    }
}

我如何使方法像预期的那样运行?

编辑:此问题也适用于setup方法和映射器中。

保罗·菲达尔戈(Paulo Fidalgo)

您需要将@Override注释添加到您的cleanup方法。

另外,如果您使用的是旧的API,则必须检查Mapper接口是否扩展了该Closable接口-该接口定义了close方法(而不是使用cleanup作为新的mapreduce API映射器的方法)

@Override
public void close() {

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

减速器中的打字稿类型问题

来自分类Dev

MR减速器中的输出HBase增量

来自分类Dev

Redux:区分减速器中的对象

来自分类Dev

了解以下减速器中的扩散和破坏用途

来自分类Dev

在redux中是否可以嵌套化径减速器?

来自分类Dev

反应在父级减速器与子级减速器中完成的Redux逻辑

来自分类Dev

减速器中CRUD的“ U”(更新)部分的问题

来自分类Dev

在减速器中删除动态属性

来自分类Dev

减速器未在Redux中接收动作

来自分类Dev

在Redux中嵌套/组合合并的减速器?

来自分类Dev

减速器未连接

来自分类Dev

减速器中Redux有效负载的问题

来自分类Dev

减速器中的打字稿类型问题

来自分类Dev

在Typescripted Redux中,如何找到根减速器的类型?

来自分类Dev

减速器异常

来自分类Dev

减速器未在hadoop中执行

来自分类Dev

减速器后运行功能

来自分类Dev

无法在反应中显示来自减速器的消息

来自分类Dev

我的减速器已执行,但状态未在反应中更新

来自分类Dev

如何在地图对象中渲染减速器

来自分类Dev

深度状态的减速器

来自分类Dev

在减速器中设置状态会产生类型错误

来自分类Dev

减速器中的 Redux 状态不是最新的?

来自分类Dev

在 react-native 中从另一个减速器更新减速器

来自分类Dev

在减速器或组件中过滤数据?哪个更好?

来自分类Dev

减速器中(初始)状态的编辑属性

来自分类Dev

减速器不更新反应 redux 中的状态

来自分类Dev

无法在组合减速器中使用减速器

来自分类Dev

redux 减速器中的打字稿