其他分享
首页 > 其他分享> > ReduceTask并行度决定机制

ReduceTask并行度决定机制

作者:互联网

设置ReduceTask并行度(个数)

ReduceTask的并行度同样影响整个Job的执行并发度和执行效率,但与MapTask的并发数由切片数决定不同,ReduceTask数量的决定是可以直接手动设置:

 

// 默认值是1,手动设置为4
job.setNumReduceTasks(4);

 

 

 

注意:

(1)ReduceTask=0, 表示没有Reduce阶段,输出文件个数和Map个数一致。

(2)ReudceTask默认值就是1, 所以输出文件个数为一个。

(3)如果数据分布不均匀,就有可能在Reduce阶段产生数据倾斜。

(4)RedueTask数量并不是随意设置,还要考虑业务逻辑需求,有些情况下,需要计算全局汇总结果,就只能有1个ReduceTask。

(5)具体多少个ReduceTask,需要根据集群性能而定。

(6)如果分区数不是1,但是ReduceTask为1,是否执行分区过程。答案是:不执行分区过程。因为在MapTask的源码中,执行分区的前提是先判断ReduceNum个数是否大于1.不大于1肯定不执行。

 

标签:默认值,分区,ReduceTask,个数,并行度,机制,执行
来源: https://www.cnblogs.com/xiao-wang-tong-xue/p/16514812.html