首页 理论教育 MapReduce计算框架简介

MapReduce计算框架简介

时间:2023-06-26 理论教育 版权反馈
【摘要】:使用MapReduce处理大数据的基本思想包括以下3个层面。MapReduce是一个使用简易的软件框架,MapReduce将复杂的、运行在大规模集群上的并行计算过程高度地抽象为两个简单的函数:Map函数和Reduce函数。Reduce函数也并行计算不同的中间结果。所有的Map函数完成之后,才能进行Reduce函数,汇总所有Reduce函数的处理结果,得到最终结果。图4-2基于MapReduce的并行计算模型分布式存储计算。MapReduce提供了一个统一的计算框架,MapReduce通过抽象模型和计算框架把需要做什么与具体怎么做分开了。

MapReduce计算框架简介

使用MapReduce处理大数据的基本思想包括以下3个层面。

(1)分而治之。

一个大数据若可以分为不存在数据依赖关系的,而且具有相同的计算过程则利用并行计算提高处理数据的速度。例如,假设有一个巨大的2维数据,大得无法同时放进一个计算机的内存,如图4-1所示。

图4-1 MapReduce分而治之的思想

(2)Map函数和Reduce函数。

MapReduce是一个使用简易的软件框架,MapReduce将复杂的、运行在大规模集群上的并行计算过程高度地抽象为两个简单的函数:Map函数和Reduce函数。

1)Map:<k1,v1>List(<K2,V2>)。(www.xing528.com)

输入:键值对<k1,v1>表示的数据。处理:数据记录将以“键值对”形式传入Map函数;Map函数将处理这些键值对,并以另一种键值对形式输出中间结果List(<K2,V2>)。输出:键值对List(<K2,V2>)形式的一组中间数据。

2)Reduce:<K2,List(V2)>→List(<K3,V3>)。

输入:由Map输出的一组键值对List(<K2,V2>)将被进行合并处理,同样主键下的不同数值会合并到一个列表List(V2)中,故Reduce的输入为<K2,List(V2)>。处理:对传入的中间结果列表数据进行某种整理或进一步的处理,并产生最终的输出结果List(<K3,V3>)。输出:最终输出结果List(<K3,V3>)。

基于MapReduce的并行计算模型如图4-2所示。各个Map函数并行处理划分后的数据,针对不同的分块数据,产生不同的中间结果。Reduce函数也并行计算不同的中间结果。所有的Map函数完成之后,才能进行Reduce函数,汇总所有Reduce函数的处理结果,得到最终结果。

图4-2 基于MapReduce的并行计算模型

(3)分布式存储计算。

MapReduce提供了一个统一的计算框架,MapReduce通过抽象模型和计算框架把需要做什么与具体怎么做分开了。其隐藏了系统层与并行计算任务相关的诸多细节,分布代码的调度与执行由集群自动调度完成。为程序员提供了一个抽象和高层的编程接口和框架,程序员仅需编写用于处理应用本身问题的程序代码。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈