MapReduce三种分区方法

何时分区


当map函数输出数据到循环内存缓冲区,数据达到循环内存缓冲区的阀值时,会将数据溢写到文件中,在写入文件之前会对数据进行分区

分区分类及如何实现

第一种:默认分区

            系统自动调用HashPartitioner类进行分区,原码如下:


该类通过继承Partitioner类实现分区,将key的哈希值与integer的最大值做&运算,并%1来设置分区

第二种:自定义分区

         1、   创建一个类并继承Partitioner类<K,V>

            K-------------map函数的输出key类型

            V-------------map函数的输出value类型

        2、实现getPartition()方法,在该方法中设置分区逻辑

第三种:全局排序

全局排序细节

猜你喜欢

转载自blog.csdn.net/qq_42444621/article/details/80713143