先看源码:
结论:
1.ReduceTask的数量由job提交时的参数决定:job.setNumReduceTasks()。设置为多少,就开启多少个ReduceTask,默认为1。设置为0时,则表示没有Reduce阶段,只有Map阶段。生成文件数量由ReduceTask数量决定。
2.Partitioner的数量由ReduceTask的数量决定, Partitioner数量 =ReduceTask数量。
其中: 1)若ReduceTask = 1 ,无论用户有没有自定义分区规则,都只有一个分区。
2)若设置ReduceTask >1,则 如果用户没有自定义Partitioner,则按照默认的HashPartitioner对数据进行划分。
如果用户自定义了Partitioner,则其中的分区的个数不能超过Partittion的数量,否则会Exception。
Original: https://www.cnblogs.com/ji-lei/p/16338019.html
Author: Ji_Lei
Title: Partition和ReduceTask的关系
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/562847/
转载文章受原作者版权保护。转载请注明原作者出处!