在谈到使用映射-规约模式时,可能意着使用映射-规约模式编程模型(狭义),或使用映射-规约模式系统(更广泛意义上的),提供了对编程的支持模型,以及一组丰富的系统服务和先进特性。理解的编程模型是足够的写一个语义正确的程序,但是,从我们的经验,为了编写一个程序,datacenter-scale表现良好系统中,常常需要了解map-reduce系统。在下面,我们描述的编程模型(2.1节),系统服务(2.2节),和先进的功能(2.3节),基于原始论文使用映射-规约模式[5]和开源Hadoop实现[11]。图1说明了使用映射-规约模式使用的编程模型一个单词计数的例子。一个程序员实现了两个功能,地图功能和减少功能。它们的语义显示在图1。从概念上讲,输入论文网
使用映射-规约模式计算由列表(in_key in_value)对。每个映射函数调用需要一双(in_key in_value)作为输入,并生成零个或多个对中间键值,(mid_key mid_value),系统自动执行在中间mid_key group by操作。在那之后,每减少一组函数调用过程,即mid_key和mid_values列表,并产生零个或多个输出结果。这个词计算示例如图1所示,Map函数
生成一个(单词,1)为每个encoun——作为中间结果特雷的话,mid_value = 1,Reduce函数简单总结mid_values得到字数的列表。系统提供了三个类别的服务来促进使用映射-规约模式程序的运行在大量的机器,如图2所示。(我)分布式文件系统:输入和输出存储在一个分布式文件系统在全球范围内访问。(2)自动分配任务:系统实例化Map和Reduce任务在大量的机器,分区和分配单独的输入映射任务,然后坐标中间结果的复制(存储在本地磁盘)从减少运行的机器运行任务映射到机器任务。一个典型的优化是在同一个地点协同工作任务映射到一个机器(或架),还拥有分配输入分区的副本在分布式文件系统。(3)容错:系统监控任务的执行和重新执行任务(因为如果他们失败
机器崩溃等)。自5月减少任务的输入来自任何地图的任务,需要等待所有地图
任务完成之前推出减少任务。附近的结束地图或减少阶段,系统安排备份执行剩下的正在进行的 任务来防止“流浪汉”, MAP-REDUCE的程序和系统英文文献和中文翻译(2):http://www.youerw.com/fanyi/lunwen_39449.html