Mapreduce的api编程

 

KEYIN:输入的KEY是maptask所读取到的一行文本的起始偏移量,long
VALUEIN:输入的VALUE的类型,输入的VALUE是maptask所读取到的一行文本内容,String
KEYOUT:我们在本逻辑中输出单词做key,String
VALUEOUT:我们在本逻辑中输出1作value,Integer   

但是,在mapreduce中,maptask输出的key,value需要经过网络传给reducetask,所以,这些key对象,value对象,都要可以被序列化和反序列化,虽然Long、String等JDK中的数据类型都实现了serializable接口,可以被序列化,但是Serializable序列化机制产生的序列化数据相当臃肿,会大大降低网络传输的效率,所以Hadoop专门设计了一套序列化机制,接口为Writable,那么maptask输出给reducetask的key-value都必须实现Writable接口

Long  --> LongWritable

String --> Text

Integer --> IntWritable

Double --> DoubleWritable

.......

在客户端的程序中可以设置reducetask 的运行实例数量

job.setNumReduceTasks(2);//默认是1

 

posted @ 2018-11-27 20:37  BoomOoO  阅读(224)  评论(0编辑  收藏  举报