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