如何在Reducer的close方法中发出

时间:2012-11-26 00:09:00

标签: hadoop mapreduce

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方法并发出数据时运行一些代码。

1 个答案:

答案 0 :(得分:2)

很遗憾,您使用的是旧API。新API采用cleanup方法(补充setup)。

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