盖宝宏-云计算作业.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
盖宝宏-云计算作业

MapReduce的并行编程应用与研究 随着云计算的兴起和进一步发展,并行编程模型的大规模地城基础设施建设将成为研究的热点,网络产生的数据也呈指数增长,而传统的技术构架和仅靠单台计算机基于串行的方式越来越不适应当前海量数据处理的要求。因此要在一定的时间内以最快的处理速度来完成对数据的处理,简单的说就是用多个处理器来同时协调解决一个问题,即将需要求解的问题分解为若干个部分,各个部分分配给一个独立的处理机来进行并行计算,MapReduce顺势而生。MapReduce是Google公司于2004年提出的并能够处理海量数据的并行编程模型,能够降低并行编程的难度,让程序员从繁杂的并行编程工作中解脱出来,轻松的编写简单高效的并行程序。 为了在合理的时间内执行完毕巨大的输入数据,数据上的内容必须要分布到上百或者是上千个计算机上去执行。而如何处理并发计算,如何分布数据,如何处理失败等相关问题合并在一起就会导致原本简单的计算淹没在为了解决这些问题而引起的很复杂的代码中,为了降低这种复杂度,MapReduce应运而生,把公共的细节抽象到一个库中,由一个运行时系统来负责,而将对数据的操作抽象为map和reduce两个概念,大部分对数据的操作都和map相关,这些map负责处理输入记录中的每个逻辑record,并且会产生一组中间的key/value值对,接着对所有具有相同key的中间结果上执行reduce操作,这样就能将适当的数据进行合并。MapReduce的主要贡献在于提供了一个强大的接口,通过这个接口,可以把大尺度的计算自动的并发和分部执行,使用这个接口,可以将应用部署到由普通pc构成的巨大集群上,从而获得极高的性能。从数据划分方面来看,每一个数据集合对应着不同的操作,从计算任务的分配角度来看,由于只有一个数据无关的计算步,所以在设计MapReduce的连个主要步骤map和reduce时,可以将计算任务放入其中的任何一个步骤,在数据结构的设计方面来看必须要有两部分信息要考虑一方面是数据集合的参数和标志信息另一方面是数据集合本身的数据。 MapReduce运行过程如下所示?: 1 首先用户程序把输入数据分割成M?份,每份为16MB到64MB大小的数据块 可通过参数来设定 ?.然后,?开始在集群上进行程序的拷贝.?这些程序拷贝中有一份是Master,其余都是向Master?请求任务的Worker;? 2 一旦分配Ma任务,Worrke?r?便从相应的输入数据中分析出key/value对,并把每个key、value对作为用户定义的map函数的输入。Map函数产生的中间值key/value对被存储在内存中。 3 存储在内存中的中间值key/value对会被定期的写入本地磁盘中,用户定义的函数将其划分为多个部分,master负责把这些中间值key/value对在本地磁盘上的存储位置传递给执行reduce任务的worker。 4 通过远程调用,执行reduce任务的worker执行map任务的worker的本得磁盘中的key/value对 5 当一个执行reduce任务的worker从远程读取到所有所学中间值之后,通过排序将具有相同key的中间值对聚合在一起,作为reduce函数的输入 6 每个reduce函数的输入分别放到形影的输出文件中,当所有的map和reduce任务都执行完毕,master唤醒用户程序。此时,用户程序中的MapReduce返回用户代码。 MapReduce的工作模型 MapReduce的关键性能有推测执行、容错机制、存储本地化和combine。推测执行是指某个节点热舞运行比预期慢的时候,检测执行慢的任务,并启动一个相同的任务作为备份,并且实在所有的任务启动完成之后才启动而且之针对那些已经运行一段时间且比作业中其他任务平均进度慢的任务。MapReduce被设计用于成千上万台机器上的海量数据处理,因此必须考虑机器故障的容错问题,控制节点会定时ping每个工作机器,如果在一定是时间内没有得到该机器的响应,就认为该机器失效,主控制程序需要把所有节点上的人物重新执行一次,才能完成MapReduce操作,客户端可检测到控制点失效,并且需要重启MapReduce操作,这就是容错机制。在分布式计算过程中,网络资源相对稀缺,MapReduce控制节点有输入文件组的位置信息,并尝试在包含响应输入数据块的机器上分配Map任务,如果不能分配,它就尝试分配Map任务到尽量靠近这个任务的输入数据的机架上执行,还是不行的话就从不同的机架上检索数据,由于大部分输入数据都是在本地机器上读取的这一过程基本上并不占用网络带宽。Combine操作是对map映射后产生的中介结果进行初步处理,使之按实际的reduce要求有序,能有效提高后续全局的reduce操作的速度

文档评论(0)

tiangou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档