过程梳理:
l 一份输入数据分割成多个分片,交给不同的map任务处理;
(如果设置的业务节点比较少,有可能多个map任务运行在一个map节点上)
l 每个map任务处理一份分片数据,输出k-v对;
(中间结果保存到本地文件系统)
l 分区器Partitioner,根据key,对map的输出数据进行hash运行,
将数据保存到不同的桶。
(每个桶存放了相同编号的数据,每个桶对应了一个reduce任务)
l 每个reduce任务通过网络传输,从远程下载map任务本地的指定桶的中间结果数据。
每个reduce任务分别输出一个hdfs上的文件。
(Hadoop的hdfs不支持多个任务同时将数据写到同一个文件上)