数字媒体技术讲座代码分析-2014329700042黄宇达.docVIP

数字媒体技术讲座代码分析-2014329700042黄宇达.doc

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

数字媒体技术讲座MapReduce浅析 14数字媒体技术 2014329700042 黄宇达 谷歌在2004年发表了可以分析大量数据的MapReduce算法。每当我们听到“大数据”这个词时,它指的是因为太大而让仅仅一台机器难以有效存储或分析的问题。MapReduce通过把计算量分配给不同的计算机群,能够解决大部分和大数据有关的分析问题。Hadoop提供了最受欢迎的利用MapReduce算法来管理大数据的开源方式。现今MapReduce是主流。 所以通常来说,每当我们听到“大数据”,那也许意味着Hadoop被用来存储数据,也通常意味着数据的抽取和检索是用的MapReduce。 MapReduce 算法是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念Map(映射)和Reduce(归约),是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。 以上是百度百科对MapReduce的。按照理解,我觉得跟一个有趣的类比十分相似。。其实在MapReduce的算法中,是里面的黑桃找出来,你只需要目标进行是否是黑桃的判断。映射里面的结果汇总。如将每一个判断汇总得到总数有多少张是黑桃的结果。 在如今大数据时代, 算法的重要性逐步提高的同时,MapReduce发挥着不可的作用。 采用的是方法,对处理。 其实MapReduce最大的亮点,就是在于 在MapReduce中,定义了两个抽象函数接口 由用户去编程实现: map: (k1; v1) → [(k2; v2)] 输入:键值对(k1; v1)表示的数据 处理:文档数据记录(如文本文件中的行,或数据表格中的行)将以“键值对”形式传入map函数;map函数将处理这些键值对,并以另一种键值对形式输出处理的一组键值对中间结果 [(k2; v2)] 输出:键值对[(k2; v2)]表示的一组中间数据 reduce: (k2; [v2]) → [(k3; v3)] 输入: 由map输出的一组键值对[(k2; v2)] 将被进行合并处理将同样主键下的不同数值合并到一个列表[v2]中,故reduce的输入为(k2; [v2]) 处理:对传入的中间结果列表数据进行某种整理或进一步的处理,并产生最终的某种形式的结果输出[(k3; v3)] 。 输出:最终输出结果[(k3; v3)] Map和Reduce为程序员提供了一个清晰的操作接口抽象描述。 程序员仅需要关心其应用层的具体计算问题,仅需编写少量的处理应用本身计算问题的程序代码 具体完成这个并行计算任务所相关的诸多系统层细节被隐藏起来,交给计算框架去处理:从分布代码的执行,到大到数千小到单个节点集群的自动调度使用。 数据划分和计算任务调度: 系统自动将一个作业(Job)待处理的大数据划分为很多个数据块,每个数据块对应于一个计算任务(Task),并自动 调度计算节点来处理相应的数据块。作业和任务调度功能主要负责分配和调度计算节点(Map节点或Reduce节点),同时负责监控这些节点的执行状态,并负责Map节点执行的同步控制。数据/代码互定位: 为了减少数据通信,一个基本原则是本地化数据处理,即一个计算节点尽可能处理其本地磁盘上所分布存储的数据,这实现了代码向 数据的迁移;当无法进行这种本地化数据处理时,再寻找其他可用节点并将数据从网络上传送给该节点(数据向代码迁移),但将尽可能从数据所在的本地机架上寻 找可用节点以减少通信延迟。 Map和Reduce借鉴函数式设计语言Lisp的设计思想。 函数式程序设计(functional programming)语言Lisp是一种列表处理 语言(List processing),是一种应用于人工智能处理的符号式语言,由MIT的人工智能专家、图灵奖获得者John McCarthy于1958年设计发明。 Lisp定义了可对列表元素进行整体处理的各种操作,如: 如:(add #(1 2 3 4) #(4 3 2 1)) 将产生结果: #(5 5 5 5) Lisp中也提供了类似于Map和Reduce的操作 如: (map ‘vector #+ #(1 2 3 4 5) #(10 11 12 13 14)) 通过定义加法map运算将2个向量相加产生结果#(11 13 15 17 19) (reduce #’+ #(11 13 15 17 19)) 通过加法归并产生累加结果75 总结而言。 目前MapReduc

文档评论(0)

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

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

1亿VIP精品文档

相关文档