- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
并行计算框架 ?MPI ?PVM ?CUDA ?BOINC ?Map-Reduce 云计算是什么? ?相关软硬件厂商(争先恐后状):我的产品就是云计算 ?不相关软硬件厂商(争风吃醋状):云计算不就是一根网线加上计算机嘛 ?政府官员:云计算就是超级计算机 ?广大围观者:云计算就是集群?Or Hadoop?Or Openstack?Or Vmware?Or …?网格和云计算有什么差别? 云计算是服务模式和拥有模式的革命 云计算是服务模式:它不是新技术,更准确来说不应称之为技术,它是在一些关键技术日趋成熟后催生的一种新的服务模式 ?云计算通过集中拥有,使到用户能得到其本身无法得到的服务,或是以更低成本获得相同的服务,降低拥有成本是云计算的核心价值之一 ?云计算项目,必先考虑服务模式和盈利模式的问题,其次才是投资和技术 云计算的特征 自我服务 ?按使用量计费 ?弹性架构 ?可定制化 云计算模式也会增加成本 ?安全风险 ?可用性风险 ?绑架风险 云计算的形态 ?私有云 ?公有云 ?混合云 目前流行的开源云计算解决方案 Hadoop在云计算中的用途 分布式文件系统提供的低单位成本的巨大的存储能力,高冗余度的可靠性 Map-Reduce提供快速并行计算能力,这种能力可以随着节点数的增加线性递增 淘宝数据魔方 架构图 Hadoop@Baidu 日志的存储和统计; 网页数据的分析和挖掘; 商业分析,如用户的行为和广告关注度等; 在线数据的反馈,及时得到在线广告的点击情况; 用户网页的聚类,分析用户的推荐度及用户之间的关联度。 何谓MapReduce? 一种云计算的核心计算模式,是一种处理海量数据的简化并行计算的分布式编程模式。 用于大规模数据集(通常大于1TB)的并行运算。 MapReduce实现了Map和Reduce两个功能。 Map-reduce的思想就是“分而治之”。 ? Mapper负责“分”,即把复杂的任务分解为若干个“简单的任务”执行。 ?“简单的任务”有几个含义:1 数据或计算规模相对于原任务要大大缩小;2 就近计算,即会被分配到存放了所需数据的节点进行计算;3 这些小任务可以并行计算,彼此间几乎没有依赖关系 Reducer 对map阶段的结果进行汇总 ?Reducer的数目由mapred-site.xml配置文件里的项目mapred.reduce.tasks决定。缺省值为1,用户可以覆盖之 何谓MapReduce? MapReduce实现了Map和Reduce两个功能 Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集。是把一组数据一对一地映射为另外一组数据,其映射的规则有一个函数来指定。例如:[1,2,3,4]进行乘2的映射就变成了[2,4,6,8] Reduce对结果集进行分类和归纳,对一组数据进行规约,这个规约的规则由一个函数指定。例如:对 [1,2,3,4]进行求和的规约得到结果是10. Map()和 Reduce() 两个函数可能会并行运行,即使不是在同一的系统的同一时刻。 Map负责把任务分解成多个任务, Reduce负责把分解后多任务处理的结果汇总起来。至于在并行编程中的其他复杂问题,如分布式存储、工作调度、负载均衡、容错处理、网络通信等,由MapReduce框架负责处理。 何谓MapReduce? MapReduce模式的主要思想是将要自动分割执行的问题(例如程序)拆解成Map(映射)和Reduce(化简)的方式。流程图如下: Shuffle 分片的问题 ?分片非常接近物理块边界 ?通常每个分片对应一个task ?通过分片实现计算数据本地化 ?分片包含的数据未必都在本地 MapReduce几个基本概念 1、列表处理(MapReduce程序是转变输入元素列表成输出数据元素列表。) 2、映射mapping数据列表(mapping通过对输入数据列表中的每一个元素应用一个函数并创建了一个新的输出数据列表) 3、reducing数据列表(reducing函数操作指的是对一个列表的元素进行适当的合并。) 4、分布和可靠性(MapReduce通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性,每个节点会周期性地把完成的工作和状态的更新报告回来。) MapReduce的编程模式 1、认识键和值 MapReduce中,没有一个值是单独的,每个值都会有一个键与其关联,键标识相关的值。 Mapping和reducing函数不是仅接受数值,而是(键,值)对。 2、mapper和reducer是如何工作的 Mapper针对每一个输入
文档评论(0)