Hadoop的Mapreduce中Mapper的key和Map的key的区别
问题:我们知道Mapreduce 是以键值对的方式进行输入输出的,分为Mapper <k,v,k,v>和Reduce<k,v,k,v> ,
那么这里的<Key,Value>和JAVA的import java.util.HashMap的Map集合<Key,Value>是不是一个概念呢?
我们知道JAVA的Map键值对的key是不可以重复的,而Mapredue的key是不可避免会重复,所以要区分两者。。
经老师指点:
Map集合中key不是不能重复的吗---------这个Map指的是JAVA里面的import java.util.HashMap这个Map,这里是数据结构,key相同的话,value会覆盖。
那么Mapper的特性是否也是这样---------这里的Mapper是import org.apache.hadoop.mapreduce.Mapper; 这里指的是mapreduce框架里面的map阶段。context.write(word, one)表示那个key累加一次。key是可以重复的。不然wordcount,也统计不出次数了。
这两个完全不是一回事。