mapreduce-中间键和输出

3ks5zfa0  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(391)

对于每个中间键,每个reducer任务都可以发出:
任意多个最终键值对。对这些“n”个键值对的类型没有限制(即,它们可以是异构的)。

只要所有键都具有相同的类型,并且所有值都具有相同的类型,就可以根据需要选择多个最终的键值对。

bnlyeluc

bnlyeluc1#

“随心所欲”是真的,对输出对的数量没有限制(当然只要有足够的空间)。
输出键的类型和输出值的类型是在main方法(在旧api的driver类中)中预定义的,Map输出键和值的类型也是预定义的。设置方式如下:

conf.setOutputKeyClass(VIntWritable.class); //just an example
conf.setOutputValueClass(Text.class); //just an example

以及

conf.setMapOutputKeyClass(VIntWritable.class); //just an example
conf.setMapOutputValueClass(LongWritable.class); //just an example

分别。
您只需要设置Map输出的类型,如果它与reduce输出不同。
如果您想输出更多类型,那么可以使用multipleoutputs。

相关问题