Hadoop-Mapper和Reducer的输出类型

MapReduce主要分为两个过程:Map和Reduce

Mapper过程:Mapper<K1, V1, K2, V2 >

Reducer过程:Reducer<K2, V2, K3, V3 >

K1,V1 的类型一般由job.setInputFormatClass()指定,比如job.setInputFormatClass(TextInputFormat.class)等等;

Mapper和Reducer的K2 V2需要保持一致;

当Mapper输出格式与Reducer的输出格式一样时

可以省略job.setOutputKeyClass()与job.setOutputValueClass()设置

Reducer的输出K3 V3 一般由job.setOutputKeyClass(Text.class);job.setOutputValueClass(Text.class);设置

当然这里设置的不仅仅是Reducer的输出类型,同时也设置了Mapper的输出类型。即Mapper和Reducer的输出类型被设置成一样了。

如果想要Mapper和Reducer的输出key或value类型不同,可以通过setMapOutputKeyClass 和 setMapOutputValueClass来设定Mapper的输出key/value对。

猜你喜欢

转载自blog.csdn.net/qq_25948717/article/details/82495277