本文主要是介绍wordcount案例的shuffle过程分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
如上图,假设,有个文件为test.log,大小为260mb,内容是一些单词,我们要对这些单词进行统计,统计每个每个单词出现的总次数,称之为:wordcount,下面我们分析分析mapreduce流程是怎么走的
1 Splitting
splitting阶段是对我们的文件进行拆分,正常的block块默认是128m,我们文件大小为260m,那么260/128=2余4,那么一般会被拆成2个128m,1个4m,如上图,拆成3块
2 Mapping
mapping阶段就是把我们刚刚分好的块,每个块跑一个task任务,这个任务的目的就是把数据格式转换成key,value形式;key为单词,value为1
3 Shuffling
shuffling阶段主要是通过网络传输,把相同的key拉到一起
reducing
reducing阶段主要就是对每个相同的key进行求和,生成的数据格式还是key,value形式,key为单词,value为这个单词出现的次数
Final result
最后把这个结果写入到一个文件中,如上图
这篇关于wordcount案例的shuffle过程分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!