标签:style 使用 strong 代码 new ef on sp
分析这个原理,的原因是:
1、更好的理解MAPREDUCE的过程。
2、在二次排序时会用到这个原理,二次排序要重写分区方法,重写分组方法;如果原理没搞明白,就无法写二次排序的代码。
| 
 Key  | 
 默认分区  | 
 默认分组  | 
 自定义分区  | 
 自定义分组  | 
| 
 Abc123  | 
 1、使用系统默认分区方式,是按KEY进行分区。 
 2、KEY相同,分划分到一个分区且只能划分到一个分区。 划分方式按KEY的HASHCODE进行计算。 
 3、假设设定为3个分区,则划分方式可能是 a) 分区1:Abc789,Cde123,Cde456 b) 分区2:Abc456,Cde789,Efg123 c) 分区3:Abc123,Efg456,Efg789  | 
 1、默认按KEY进行分组,KEY相同的划分到同一个分组。 
 2、同一个分组的VALUE会以组中第一个值的KEY为KEY发送到REDUCE进行迭代。 
 3、默认情况下,就会有9个分组,进行9次REDUCE迭代。  | 
 将前三个字母截取,生成HASHCODE进行分区。假设有3个分区,分区结果如下所示:  | 
 将前三个字母截取,进行分组比较,KEY相同的划分到同一个分组中。分组情况如下所示:  | 
| 
 Abc456  | 
 1、分区1:Abc123,Abc456,Abc789 2、分区2:Cde123,Cde456,Cde789 3、分区3:Efg123,Efg456,Efg789  | 
 1、分组1(KEY是Abc):Abc123,Abc456,Abc789 2、分区2(KEY是Cde):Cde123,Cde456,Cde789 3、分区3(KEY是Efg):Efg123,Efg456,Efg789  | 
||
| 
 Abc789  | 
||||
| 
 Cde123  | 
||||
| 
 Cde456  | 
||||
| 
 Cde789  | 
||||
| 
 Efg123  | 
||||
| 
 Efg456  | 
||||
| 
 Efg789  | 
mapreduce原理【分区,分组】,布布扣,bubuko.com
标签:style 使用 strong 代码 new ef on sp
原文地址:http://www.cnblogs.com/netskill/p/3912808.html