HadoopMapReduce运行机制

1.map方法读取一个文件的一行记录进行分析,  输入:LongWritable(当前读取的文件位置), Text(内容)

2.map将读取到的信息进行分类,输入Context  (键值对)  ;作为Reduce 的输入数据

3.当所有的map运行完后,mapreduce 框架 会通过一个Patitioner 类进行reduce输入数据的分发.

默认的分发规则为:通过比较两个key的hashCode值与reduce个数取摩,

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

返回的摩就是目标reduce task

猜你喜欢

转载自www.cnblogs.com/liuyongpingblog/p/10010168.html