从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方法并发出数据时运行一些代码。
答案 0 :(得分:2)
很遗憾,您使用的是旧API。新API采用cleanup
方法(补充setup
)。
我想知道Hadoop是否会让你作弊并将OutputCollector
存储在Reducer类中的私有数据成员中,然后在close方法中引用它。我猜你不能,但它可能值得一试。