3

closeから継承されたメソッドMapReduceBaseには引数がありません:

public void close()

したがって、メソッドのように持っていませOutputCollectorreduce:

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

setup新しい Hadoop API では、Reducer クラスに次のメソッドがあることがわかりました。

void setup(Context context)

コンテキスト引数はキーと値を発行できると思います。問題は、古い API を使用する必要があり、close メソッドで出力する方法がわからないことです。私が欲しいのは、最後のreduceメソッドが呼び出されてデータを出力したときにいくつかのコードを実行することです。

4

1 に答える 1

2

古い API を使用しているのは残念です。新しい API にはcleanupメソッド (補完setup) があります。

OutputCollectorHadoopでは、Reducer クラスのプライベート データ メンバにチートして格納し、それを close メソッドで参照できるようになるのでしょうか。できないとは思いますが、やってみる価値はあります。

于 2012-11-26T05:18:42.970 に答える