我对MapReduce中reduce
的输出感到困惑。
根据Jeff Dean和Sanjay Ghemawat的原始文件第2.2节,它应该是
reduce (k2,list(v2)) → list(v2)
但根据Hadoop教程Inputs and Outputs
部分和奥雷利的书,它是(K3, V3)
的列表
那么有什么区别呢?它们本质上是一样的还是不一样?
事实上,mapreduce作业的输出是一些文件,每个文件都由reducer生成,每个生成的文件都是我们在reduce(…(函数中通过调用context、write(
为了进一步提醒,我们在执行作业之前通过调用来定义这些键和值对象的类型
job.setOutputKeyClass(class...);
job.setOutputValueClass(class...);