请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

reduce个数疑问

 * map的输出到reduce端,是按相同的key分发到一个reduce上去执行
 * reduce1:(hello, 1) (hello, 1) (hello, 1)  => (hello, <1,1,1>)
 * reduce2:(world, 1) (world, 1) (world, 1)  => (world, <1,1,1>)
 * reduce3:(welcome, 1) => (welcome, <1>)
 * 
**上面的reduce个数和下面的numReduceTasks是一个东西吗**

 public class HashPartitioner<K, V> extends Partitioner<K, V> {

/** Use {@link Object#hashCode()} to partition. */
public int getPartition(K key, V value, int numReduceTasks) {
return (key.hashCode() & Integer.MAX_VALUE) % numReduceTasks;
}

}

正在回答

1回答

是的。numReduceTasks默认是1个,如果自定义的分区器,那就可以手工设定reduce的个数,那么这个个数就会通过矿建传入到底层源码中去

0 回复 有任何疑惑可以回复我~

相似问题

登录后可查看更多问答,登录/注册

问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信