首页 > 编程知识 正文

mapreduce实现原理,mapreduce是如何工作的

时间:2023-05-06 00:59:51 阅读:163541 作者:2565

MapReduce的基本模式和处理思想:三个层面的基本构想

1 .应对大数据:分而治之

对于互不存在计算依赖关系的大数据,实现并行化的最自然方法是采取分治策略。

2 .上升为抽象模型: Mapper和Reduce

MPI等并行计算方法缺乏高层并行编程模型,程序员需要自行指定存储、计算、分发等任务。 为了克服这个缺点,MapReduce借鉴Lisp函数型语言的思想,用Map和Reduce两个函数提供了高层并行编程模型的抽象。

3 .上升到体系结构:统一体系结构,为程序员隐藏系统层细节

MPI等并行计算方法缺乏对统一计算框架的支持,程序员需要考虑数据存储、划分、分发、结果收集、错误恢复等诸多细节,因此,MapReduce设计了同意的计算框架

大数据分型治疗

创建地图和Reduce抽象模型

借鉴函数型编程语言Lisp的思想,定义了Map和Reduce两个抽象的操作函数。

map:(k1:v1 )-() k2:v2 ) (reduce: ) k2: ) v2 )-) ) k33:v3 ) ]

每个映射处理相同结构、相同大小的初始数据块或(k1:v1 )。 其中k1是主键,可以是块索引或块地址。

v1是数据。 经过Map节点的处理,产生许多中间数据集,[]表示数据集的含义。 另一方面,Reduce节点接收的数据是合并了中间数据的数据,也就是说是合并了key值相等的数据的数据。 (k2: ) v2) ); 经过Reduce处理,生成处理结果。

例如,要一个一个地数一个英语文章中各单词出现的次数

1 .有要处理的大数据,被分割成64MB等相同大小的数据库和对应的用户作业程序。

2 .系统包括负责调度的主节点(Master )和数据映射和重做工作节点(Worker )。

3 .用户作业发送主节点。

4 .主节点用于定位和部署可用的用于工作程序的Map节点,并将该程序转发到Map节点。

5 .主节点也查找并部署作业程序的可用Reduce节点,并将程序转发到Reduce节点。

6 .主节点启动每个Map节点执行程序,每个Map节点尽可能地读取并计算本地或主机架数据。 (使代码接近数据,减少集群中数据的通信量。

7 .各Map节点处理读取的数据块,进行一些数据整理工作(combining、sorting等),将数据保存在本地机器上; 它还通知主节点计算任务已完成,并通知主节点中间结果数据的存储位置。

8 .主节点等所有映射节点计算完成后,Reduce节点开始运行; Reduce节点根据主节点掌握的中间结果数据的位置信息,远程读取这些数据。

9.Reduce节点的计算结果将汇总输出到结果文件中。 也就是说,得到了整个处理结果。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。