Map / Reduceアプリケーションの性質上、reduce
関数は複数回呼び出される可能性があるため、入力/出力キーの値は、MongoDBのMap/Reduce実装と同じである必要があります。なぜHadoopの実装では違うのだろうか?(違うことが許されていると言ったほうがいい)
org.apache.hadoop.mapreduce.Reducer<KEYIN,VALUEIN,KEYOUT,VALUEOUT>
2番目の質問:hadoopは、reduce関数の出力を返して、次の実行で再びreduceするか、HDFSに書き込む必要があることをどのように認識しますか?例えば:
public class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable>
public void reduce(Text key, Iterable<IntWritable> values, Context context) {
context.write(key, value) /* this key/value will be returned to reduce in next run or will be written to HDFS? */
}
}