标签: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