reduce个数疑问

来源:4-17 流量统计实战升级之自定义Partitioner

慕粉1926212165

2021-07-27

 * 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回答

Michael_PK

2021-07-27

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

0
1
慕粉1926212165
非常感谢!
2021-07-28
共1条回复

Hadoop 系统入门+核心精讲

从Hadoop核心技术入手,掌握数据处理中ETL应用,轻松进军大数据

2397 学习 · 902 问题

查看课程