什么是Map reduce
1.Map reduce是根据google的一篇论文提出的计算模型:Maoreduce(Hadoop实现了这种计算模型)
2.Mapreduce的诞生是为了解决pageranke(网页排名:排名的先后)问题而产生的计算模型
上图的网页关系就是我们的PageRank问题,通过谷歌的向量矩阵可以快速算出个个网页的重要度排名。矩阵当中的1代表着两个网页之间存在联系,0代表着网页之间不存在联系。通过计算网页在矩阵当中的权重来解决Pangaea的问题。mapreduce就是为了解决大量的网页之间的权重计算问题。
3.Map reduce的解决思想:先拆分,在合并。通过将大量的数据进行拆分运算矩阵权重,再将所得结果进行合并得出最终的结果从而做到计算大量数据。
4.举例:通过使用Map reduce的计算方法进行解决。下面是Map reduce的工作原理。
MapReduce的数据处理流程
- Inputformat会将切片中每一行的数据表达成kv形式,k是这一行数据的偏移量(longwritable),v是每一行数据内容类型(text)
- map端会将每一行的数据进行处理,生成若干对kv作为中间结果,经过hashpartition分区后进入环形缓冲区,当环形缓存区满80%后会将数据溢写磁盘(这里会有溢写文件的合并叫做merge)
- 然后reduce端通过http的形式请求task tracker获取map task输出的文件,reduce端接收到数据后会进行一系列的合并,排序操作然后输出最终结果.