MapReduce的执行次数问题
执行一个MapReduce任务时,总共分为MapTask和ReduceTask.
对于MT来说,是有多少个切片就执行多少个MT,如文件为200M,切片大小为128M,那么就用两个MT来执行任务就足够了。
而对于RT来说,是看需求要分为多少个分区,如对字母进行统计次数,且a-n的字母分一个区,o-z的分另外一个区,那么此时就需要两个RT来执行任务。
但是对于具体代码中的map方法和reduce方法
在map方法中,是每读取一行数据就调用一次map方法(如输入文件只有三行,那么就调用三次map方法)
在reduce方法中,是每一组相同key的values就调用一次reduce方法(如经过map后的数据为key=a,values=[1,1,1];key=b,values=[1,1],有两个不同的key即a和b,所以调用两次reduce方法)