云计算&大数据关键技术与应用目录云计算&大数据技术架构虚拟化技术12分布式数据处理技术海量数据存储技术34大数据技术应用实例5云计算运营两大阵营4云计算产品的生态系统基础硬件层虚拟化软件存储软件Swift网络软件虚拟化和基础软件层Glance基础架构及服务层应用层商用软件开源软件虚拟桌面海量数据处理大数据分析面临的主要技术问题云计算技术用于处理大数据•Highperformance–高并发读写高并发、实时动态获取和更新数据•HugeStorage–海量数据的高效率存储访问和智能分析类似SNS网站,海量用户信息的高效率实时存储和查询•HighScalability&&HighAvailability–高可扩展性和高可用性需要拥有快速横向扩展能力、提供7*24小时不间断服务阿里大数据状况□淘宝主站(2011年):•30亿店铺、宝贝浏览•10亿计的在线宝贝数•千万量级交易笔数□数据产品(2011年):•50G统计汇总结果•千万量级数据查询请求•平均20.8ms的响应时间数据来源:阿里相关技术介绍ppt阿里技术架构总览数据来源:阿里相关技术介绍ppt腾讯大数据状况数据来源:2012-12-1赵伟《HIVE在腾讯分布式数据仓库实践分享》腾讯技术架构数据来源:2012-12-1赵伟《HIVE在腾讯分布式数据仓库实践分享》百度大数据状况数据来源:2011年百度云计算总工程师林仕鼎讲座《百度云计算总体介绍》数据来源:2012.10百度杨毅讲座《百度的下一代计算系统》百度技术架构数据来源:2011年百度云计算总工程师林仕鼎讲座《百度云计算总体介绍》海量结构化数据存储系统(SQL)分布式文件系统海量非结构化数据存储系统(SQL)机器学习大数据应用机器学习分布式文件系统海量数据存储大规模计算智能分析大数据技术架构-模型分布式并行计算系统数据挖掘语义搜索……HIVEPig!ZooKeeper分布式文件系统海量数据存储大规模计算智能分析算法大数据技术架构-典型开源实现目录云计算&大数据技术架构虚拟化技术12分布式数据处理技术海量数据存储技术34大数据技术应用实例大数据技术应用实例56虚拟化技术通过虚拟化技术可实现软件应用与底层硬件相隔离,它包括将单个资源划分成多个虚拟资源的裂分模式,也包括将多个资源整合成一个虚拟资源的聚合模式虚拟化软件实现对硬件的抽象,资源的分配、调度和管理,虚拟机与宿主操作系统及多个虚拟机间的隔离等功能,目前典型的实现(基本成为事实标准)有:CitrixXenVMwareESXServerMicrosoftHype-VRedhatKVM网络虚拟化存储虚拟化桌面虚拟化计算虚拟化计算虚拟化技术Container1Container2Container3GuestOSGuestOSGuestOSVM1VM2VM3虚拟硬件虚拟硬件虚拟硬件VirtualMachineMonitorHypervisororStandardHostOSHardwareStandardHostOSHardware操作系统虚拟化层HypervisorOSVirtualization硬件虚拟化(Hypervisors)•虚拟硬件访问•创建多个虚拟硬件实例•宿主操作系统及每个Guest必须为完整操作系统•VMwareESXi,MicrosoftHyper-V操作系统虚拟化(Containers)•虚拟操作系统访问•创建多个虚拟操作系统实例•物理服务器拥有单个、标准的OS内核•VMwareworkstation,SunSolarisContainers,OpenVZ网络虚拟化:软件定义网络SDN(SoftwareDefinedNetwork)SDN是一种新兴的控制与转发分离并直接可编程的网络架构传统网络设备紧耦合的网络架构被拆分成应用、控制、转发三层分离的架构。控制功能被转移到了服务器上,上层应用、底层转发设施被抽象成多了逻辑实体网络虚拟化-VxLan实现虚拟机的跨网络迁移虚拟可扩展VLAN(VirtualExtensibleVLAN,VXLAN)标准将创建一个逻辑网络(或扩展VLAN),支持地理分散的数据中心之间实现远距离虚拟机(VM)迁移。VXLAN最终会实现多租户云网络所需要的远距离分割支持思科与VMware已经合作将VXLAN标准整合到产品中,但是这个由思科、VMware、Arista网络、Broadcom公司、Citrix系统和红帽等公司共同制定的VXLAN草案仍然有待互联网工程工作小组(IETF)标准化。云计算基础设施管理技术云计算资源规模庞大,服务器数量众多并分布在不同的地点,同时运行着数百种应用,如何有效的管理这些服务器,保证整个系统提供不间断的服务是巨大的挑战。云计算系统的平台管理技术能够使大量的服务器协同工作,方便的进行业务部署和开通,快速发现和恢复系统故障,通过自动化、智能化的手段实现大规模系统的可靠运营常用的开源VIMOpenStackCloudStackOpenNebulaEucalyptusCloud.com(Cloudstack)DeltaCloudCleverOpenStack简介OpenStack是由Rackspace和NASA共同开发的云计算平台,帮助服务商和企业内部实现类似于AmazonEC2和S3的云基础架构服务(IaaS)。用Python语言编写大型用户:NASA加拿大半官方机构CANARIE网络的DAIR项目RackspaceCloud惠普云(使用UbuntuLinux)MercadoLibre的IT基础设施云,现以Openstack管理超过60000台服务器OpenStack社区目录云计算&大数据技术架构虚拟化技术12分布式数据处理技术海量数据存储技术34大数据技术应用实例5Google分布式处理架构Google云计算应用BigTableGFSMapReduceChubby组件调用关系分析分布式文件系统分布式计算模型分布式文件系统-Google文件系统(GFS)Google48%MSN19%Yahoo33%客户端客户端客户端互为备份管理节点GFS主节点GFS主节点C0C1C2C5数据结点1C0C2C5数据结点NC1C5数据结点2…客户端客户端客户端客户端客户端客户端C1分布式文件系统-HDFS基本结构采用主从架构,由一个Namenode和若干个Datanode组成Namenode:负责管理名字空间与客户端访问Datanode:管理附带的存储,存储文件的block一个文件分成多个block,Block是HDFS最小存储与分配单位,,分布存储,典型块大小为64MB或128MB一个block被复制存放于多个datanodeHDFS在Yahoo安装了14PB的在线磁盘分布式文件系统-GlusterFS分布式文件系统-LustreMDS:MetadataServer,元数据管理器,管理名字空间和文件对象映射OSS:ObjectStorageServer,I/O服务器MDT:MetadataTarget,MDS的本地磁盘存储OST:ObjectStorageTarget,OSS的本地磁盘存储OSTMDT分布式文件系统-写入性能比较来源:中科院深圳先进技术研究院熊文,喻之斌,须成忠的论文《几个常见分布式文件系统特征分析和性能对比》(《集成技术》2012年11月)分布式文件系统-读取性能比较来源:中科院深圳先进技术研究院熊文,喻之斌,须成忠的论文《几个常见分布式文件系统特征分析和性能对比》(《集成技术》2012年11月)分布式计算模型-概述待处理数据量巨大短时间处理如何进行并行分布式计算?如何分发待处理数据?如何处理分布式计算中的错误?MapReduce模型Google公司的核心计算模型分布式计算模型-MapReduce一个软件架构,是一种处理海量数据的并行编程模式,用于大规模数据集(通常大于100TB)的并行运算适合要求:待处理的数据集可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理。MapReduce实现了Map和Reduce两个功能Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集Reduce对结果集进行分类和归纳Map()和Reduce()两个函数可能会并行运行计算流程分布式计算模型-MapReduce提供数据的存储访问、数据块划分、计算节点调度管理、数据通信、结果收集、容错处理、负载均衡、性能优化等JobTracker:主结点接受用户提交的MRjob分派map任务和reduce任务监管tasks和tasktrackers,重新执行失效任务一般情况应该把JobTracker部署在单独的机器上TaskTracker:任务的调度多个运行于多个节点的slaver服务,一个Datanode节点一个。按照jobtracker的要求执行map或者reduce任务管理存储,传输中间结果分布式计算模型-MapReduce任务执行状态更新Shuffle&Sort单词记数问题(WordCount)(Hadoop自带例子)给定一个巨大的文本(如1TB),如何计算单词出现的数目?MapReduce示例Step1:自动对文本进行分割MapReduce示例Step2:在分割之后的每一对key,value进行用户定义的Map进行处理,再生成新的key,value对MapReduce示例Map类:编程实现HadoopMapper接口的Map方法Step3:对输出的结果集归拢、排序(系统自动完成)MapReduce示例Step4:通过Reduce操作生成最后结果MapReduce示例Reduce类:编程实现HadoopReduce接口的Reduce方法目录云计算&大数据技术架构虚拟化技术12分布式数据处理技术海量数据存储技术34大数据技术应用实例51.Volume2.Variety3.value4.Velocity结构化数据、半结构化数据和非结构化数据如今的数据类型早已不是单一的文本形式,订单、日志、音频,能力提出了更高的要求沙里淘金,价值密度低以视频为例,一部一小时的视频,在连续不间断监控过程中,可能有用的数据仅仅只有一两秒。如何通过强大的机器算法更迅速地完成数据的价值“提纯”是目前大数据汹涌背景下亟待解决的难题实时获取需要的信息大数据区分于传统数据最显著的特征。如今已是ZB时代,在如此海量的数据面前,处理数据的效率就是企业的生命无法在一定时间内用传统数据库软件工具对其内容进行抓取、管理和处理的数据集合大数据的特点数据量巨大全球在2010年正式进入ZB时代,IDC预计到2020年,全球将总共拥有35ZB的数据量1PB数据相当于50%的全美学术研究图书馆藏书资讯内容。而到2012年为止,人类生产的所有印刷材料的数据量是200PB,全人类历史上说过的所有话的数据量大约是5EB。存储原理数据库存储数据库以行、列的二维表的形式存储数据以一维字符串的方式存储到磁盘行式存储按行来序列化并追加到磁盘列式存储按行来序列化并追加到磁盘列族CAP理论•分布式数据系统的CAP原理的三要素:•一致性(Consistency)•可用性(Availability)•分区容忍性(Partitiontolerance)•CAP原理:在分布式系统中,这三个要素最多只能同时实现两点,不可能三者兼顾•对于分布式数据系统,分区容忍性是基本要求•对于大多数web应用,牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。NoSQL的两个核心模型•Google的BigTableBigTable提出了一种很有趣的数据模型,它将各列数据进行排序存储。数据值按范围分布在多台机器,数据更新操作有严格的一致性保证。•Amazon的DynamoDynamo使用的是另外一种分布式模型。Dynamo的模型更简单,它将数据按key进行hash存储。其数据分片模型有比较强的容灾性,因此它实现的是相对松散的弱一致性: