会员中心 |  会员注册  |  兼职信息发布    浏览手机版!    超值满减    人工翻译    英语IT服务 贫困儿童资助 | 留言板 | 设为首页 | 加入收藏  繁體中文
当前位置:首页 > 行业文章 > 笔译技术 > 正文

MapReduce:分布式计算的框架

发布时间: 2023-04-04 09:26:15   作者:etogether.net   来源: 网络   浏览次数:
摘要: MapReduce是一个软件框架,可以将单个计算作业分配给多台计算机执行,它假定这些作业在单机上需要很长的运行时间,因此使用多...


MapReduce

优点:可在短时间内完成大量工作。

缺点:算法必须经过重写,需要对系统工程有一定的理解。

适用数据类型:数值型和标称型数据。


MapReduce是一个软件框架,可以将单个计算作业分配给多台计算机执行。它假定这些作业在单机上需要很长的运行时间,因此使用多台机器缩短运行时间。常见的例子是日常统计数字的汇总,该任务单机上执行时间将超过一整天。


尽管有人声称他们已经独立开发过类似的框架,美国还是把MapReduce的专利颁发给了Google。Google公司的Jeffrey Dean和Sanjay Ghemawat在2004年的一篇论文中第一次提出了这个思想,该论文的题目是 “MapReduce:Simplified Data Processing on Large Clusters”MapReduce 的名字由函数式编程中常用的map和reduce两个单词组成。


MapReduce在大量节点组成的集群上运行。它的工作流程是:单个作业被分成很多小份,输入数据也被切片分发到每个节点,各个节点只在本地数据上做运算,对应的运算代码称为mapper,这个过程被称作map阶段。每个mapper的输出通过某种方式组合(一般还会做排序)。排序后的结果再被分成小份分发到各个节点进行下一步处理工作。第二步的处理阶段被称为reduce阶段,对应的运行代码被称为reducer。reducer的输出就是程序的最终执行结果。


MapReduce的优势在于,它使得程序以并行方式执行。如果集群由10个节点组成,而原先的作业需要10个小时来完成,那么应用MapReduce,该作业将在一个多小时之后得到同样的结果。举个例子,给出过去100年内中国每个省每天的正确气温数据,我们想知道近100年中国国内的最高气温。这里的数据格式为:<province><date><temp>。为了统计该时段内的最高温度,可以先将这些数据根据节点数分成很多份,每个节点各自寻找本机数据集上的最高温度。这样每个mapper将产生一个温度,形如<“max”><temp>,也就是所有的mapper都会产生相同的key:“max”字符串。最后只需要一个reducer来比较所有mapper的输出,就能得到全局的最高温度值。


不同类型的作业可能需要不同数目的reducer。再回到温度统计的例子,虽然这次使用的数据集相同,但不同的是这里要找出每年的最高温度。这样的话,mapper应先找到每年的最大温度并输出,所以中间数据的格式将形如<year<temp>。此外,还需要保证所有同一年的数据传递给同一个reducer,这由map和reduce阶段中间的sort阶段来完成。该例中也给出了MapReduce中值得注意的一点,即数据会以key/value对的形式传递。这里,年代(year)是key,温度(temp)是value。因此sort阶段将按照年代把数据分类,之后合并。最终每个reducer就会收到相同的key值。



微信公众号

[1] [2] [下一页] 【欢迎大家踊跃评论】
我来说两句
评论列表
已有 0 条评论(查看更多评论)