小言_互联网的博客

mapreduc原理

276人阅读  评论(0)

MAP阶段
    执行map前需要将数据进行分片(将输入数据切分成大小相同的数据块),没一块作为单个mapworker的输入被处理,以便于多个map worker同时工作;分片完成后。多个map worker就可以同时工作,每个map worker在读取各自的数据后,进行计算处理,最终输出给reduce
Shuffle阶段(合并排序和分配reduce):
    map worker在输出数据时需要为每一条输出数据指定一个key,这个key值决定了这条数据将会被发送到哪个reduce worker。key值和reduce worker是多对一(具有相同key值的数据将会被发送到同一个reduce worker)
    在进入到recude阶段之前,mapreduce框架会对数据按照key值排序,使得具有相同key的数据彼此相邻,如果用户指定了“合并操作”(Combiner),框架会调用combiner,使具有相同key的数据进行聚合
Reduce阶段
    相同的key的数据会达到同一个reduce worker,同一个reduce worker会接收多个map reducer的数据,每个reduce worker会对key相同的数据进行reduce操作,最后,一个key的的多条数据经过reduce作用后,将变成一个值

 


转载:https://blog.csdn.net/CSDNGYB/article/details/102486749
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场