多多学习,多多思考
不是的,Combine在Shuffle之前
Combine:在Map阶段,当所有数据处理完成后,Map Task对所有临时文件进行一次合并
Shuffle:也称Copy阶段。Reduce Task从各个Map Task上远程复制一片数据,并针对某一片数据进行判断,如果其大小超过一定阀值,则写到磁盘上,否则直接放入内存中
因为老师的例子种reduce的partition只有两个,输入有3个key,所以其中必须有两个key落到同一个partition内。
所有相同的key汇聚到一个partition,没毛病。所有蓝色的key都在一个partition内,所有绿色的key都在一个partition内,所有黄色的也一样。只是可能有多个key公用一个partition而已。
为什么蓝色和绿色的两个key会进入到一个partition呢,这个要看具体的key的值和shuffer算法。比如:蓝色key=1,绿色key=3,黄色key=2,shuffer算法是根据partition数量(2)求模运算,那么绿色和蓝色就分到同一个partiton了阿。
不知道你明白没?
代码覆盖配置文件。
不对啊,本地combine的时候就是按照key值合并,减少网络传输的消耗啊