一、默认Partition分区配置
以WC案例来进行验证。
1、设置setNumReduceTasks
修改的代码
这行代码,确定了reduceTask的数量,也确定了分区逻辑
在mapper文件中,打上断点
计算分区的代码
这里会对每一个kv进行计算,然后,分配分区
2、不设置setNumReduceTasks
如果不设置这个参数
默认返回-1
,则生成的分区文件就1个
3、总结
默认分区是根据key的hashCode对ReduceTasks个数取模得到的。用户没法控制哪个key存储到哪个分区。
那么,显然无法控制key的分区,是不能满足需求的!
所以,我们需要进行自定义Partition分区计算的逻辑。