由于 Map/Reduce 应用程序的性质,reduce
函数可能会被多次调用,因此 Input/Output 键值必须与 MongoDB 的 Map/Reduce 实现相同。我想知道为什么在 Hadoop 实现中它是不同的?(我最好说它允许不同)
org.apache.hadoop.mapreduce.Reducer<KEYIN,VALUEIN,KEYOUT,VALUEOUT>
第二个问题: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? */
}
}