3

close继承自的方法MapReduceBase没有参数:

public void close()

所以我没有OutputCollector方法reduce

void reduce(K2 key, Iterator<V2> values, OutputCollector<K3, V3> output, Reporter reporter)

在新的 hadoop API 中,我发现 Reducer 类有一个setup方法:

void setup(Context context)

我认为 context 参数可以发出键和值。问题是我必须使用旧的 API,而且我不知道如何在 close 方法中发出。我想要的是在最后一次调用 reduce 方法并发出数据时运行一些代码。

4

1 回答 1

2

不幸的是,您使用的是旧 API。新 API 有一个cleanup方法(补充setup)。

我想知道 Hadoop 是否会让你作弊并将其存储OutputCollector在 Reducer 类的私有数据成员中,然后在 close 方法中引用它。我猜你不能,但它可能值得一试。

于 2012-11-26T05:18:42.970 回答