云计算导论第三章_第1页
云计算导论第三章_第2页
云计算导论第三章_第3页
云计算导论第三章_第4页
云计算导论第三章_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云计算导论主讲老师:云计算中的数据处理技术第三章云计算中的数据处理技术

数据处理一直是计算机科学研究的重要课题。作为一个复杂的系统,云计算系统的发展过程就是其数据处理技术不断完善和进步的过程。本章导读学习目标了解大数据的概念及其与云计算的关系。理解分布式系统的概念。理解分布式数据存储的概念及为其提供技术支持的分布式文件系统。理解并行编程技术。了解数据管理技术。认识ApacheHadoop项目。云计算与大数据分布式数据存储并行编程技术实例-ApacheHadoop项目数据管理技术云计算与大数据

大数据(bigdata)也称海量数据或巨量数据,是指数据量大到无法利用传统的数据处理技术在合理的时间内获取、存储、管理和分析的数据集合。“大数据”一词除用于描述信息时代产生的海量数据外,也可用于指代与之相关的技术、创新与应用3.1.1什么是大数据海量的数据规模(volume)快速的数据流转(velocity)多样的数据类型(variety)较低的价值密度(value)4V特征大数据技术是指用非传统的方式对大量结构化和非结构化数据进行处理,以挖掘出数据中蕴含的价值的技术。根据数据的处理流程,可以将大数据的关键技术分为:数据采集、数据预处理、数据存储与管理、数据分析与挖掘、数据可视化等。云计算与大数据3.1.1什么是大数据数据采集

数据采集就是将网络上各种来源的数据写入数据仓库,并整合在一起,以便对数据进行综合分析。数据采集包括网络日志采集、网络文件采集(提取网页中的图片、文本等)、关系型数据库的接入等,常用的工具有Flume、Kafka、Sqoop等。云计算与大数据3.1.1什么是大数据数据存储与管理数据预处理

数据预处理是指将杂乱无章的数据转化为相对单一且便于处理的结构(数据抽取),或者去除没有价值甚至可能对分析造成干扰的数据(数据清洗),从而为后期的数据分析奠定基础。

数据存储是指用存储器把采集到的数据存储起来,并建立相应的文件系统和数据库,以便对数据进行管理和调用。云计算与大数据3.1.1什么是大数据数据分析与挖掘

数据分析与挖掘是指通过各种算法从大量的数据中找出潜在的有用信息,并研究数据的内在规律和相互之间的关系。常用的数据分析与挖掘技术包括批处理、流处理、实时处理和交互处理等技术名称技术实例特

点应用案例批处理Hadoop分布式高速计算和存储社交网络、推荐系统流处理Storm低时延,高响应图像处理、社交媒体实时处理Spark低延迟计算视频分析、实时广告交互处理Dremel快速处理PB级海量数据电商平台云计算与大数据3.1.1什么是大数据数据可视化

数据可视化是指利用可视化手段对数据进行分析,并将分析结果用图表或文字等形式展现出来,从而使读者对数据的分布、发展趋势、相关性和统计信息等一目了然云计算与大数据3.1.2云计算与大数据的关系

作为引领未来技术变革的两项关键技术,云计算与大数据既紧密相连,又相互区别。从整体上看,两者是相辅相成的。一方面,云计算为大数据提供了技术支持和实现途径;另一方面,大数据让云计算更有价值,并推动着云计算相关技术的不断更新和完善。服务领域相同。云计算与大数据的联系关键技术相同。云计算与大数据3.1.2云计算与大数据的关系云计算与大数据的区别处理对象不同。目的不同。产生的背景不同。35推动力不同。421带来的价值不同。云计算与大数据并行编程技术实例-ApacheHadoop项目数据管理技术分布式数据存储3.2分布式数据存储分布式数据存储

云计算最主要的特征是拥有大规模的数据集,基于该数据集向用户提供服务。为了保证高可用性、高可靠性和经济性,云计算采用了分布式数据存储方式。存储3.2.1分布式系统分布式数据存储

分布式系统(distributedsystem)是指一组通过网络连接的计算机及其软件系统,这些计算机的耦合度较低,相互之间协调工作以实现整体负载均衡。3.2.1分布式系统分布式数据存储升级性能

的方法

纵向扩展是指升级当前集中式系统中的主机,其优势是数据备份和恢复简单、部署方便、安全性高、稳定性好、维护成本低;

横向扩展是指增加主机数量,将各主机通过网络连接组成分布式系统,共同存储数据和处理任务。纵向扩展横向扩展分布式数据存储

分布式数据存储即利用分布式系统来存储数据,而用于存储数据的分布式系统也称为分布式存储系统(distributedstoragesystem)。分布式存储系统@SMS分布式存储系统分布式数据存储低成本高

能可

展易

性自

性分布式数据存储技术分布式数据存储

为分布式数据存储提供技术支持的是分布式文件系统(distributedfilesystem)。分布式文件系统又称集群文件系统,它是由分布式存储系统中多个节点通过网络共同组建和共享的文件系统。分布式数据存储技术分布式数据存储GFS是谷歌公司设计并开发的大型分布式文件系统,它是通过廉价设备进行大规模数据存储的解决方案,与MapReduce并行编程模型及Bigtable分布式数据库共同构成了谷歌公司云计算的技术体系,并合称为拉动谷歌公司海量数据处理和搜索引擎等服务的“三驾马车”。GFS采用了客户机/服务器的设计模式。一个GFS由一个主控服务器(masterserver)和若干数据块服务器(chunkserver)组成,并供许多GFS客户端(GFSclient)访问,如图3-2所示。系统中的元数据以数据分片的形式存储在数据块服务器中,数据块服务器越多,能存储的数据总量越大,因此数据块服务器的数量往往决定了整个GFS的规模。主控服务器是整个GFS的核心,它存储着系统中所有元数据的信息(如创建时间、索引等)。客户端访问系统文件时,必须向主控服务器发送请求,主控服务器返回给客户端要与之交互的数据块服务器信息,然后客户端直接访问这些数据块服务器完成数据的存取。分布式数据存储技术分布式数据存储GFS的系统架构云计算与大数据分布式数据存储实例-ApacheHadoop项目数据管理技术并行编程技术3.3并行编程技术并行编程技术

并行编程(parallelprogramming)也称并行程序设计、平行编程,是针对并行计算的程序设计方法,在云计算领域,并行编程则是指对分布式并行计算进行程序设计。3.3.1分布式并行计算并行编程技术分布式计算

分布式计算(distributedcomputing)是一种计算方法,是与集中式计算相对的概念。它可以将大任务拆分成许多小任务,然后把这些任务派发给多台计算机进行计算,最后将所有的计算结果进行汇总,以得到最终结果。1.分布式计算2.并行计算3.3.1分布式并行计算并行编程技术并行计算

并行计算(parallelcomputing)又称平行计算,是相对于串行计算来说的。它是一种允许让多条指令以平行的方式同时进行计算的模式,存在时间并行和空间并行两种方式。1.分布式计算2.并行计算3.3.2MapReduce并行编程模型并行编程技术MapReduce并行编程模型(以下简称模型)是一个针对大规模集群中的分布式文件进行并行处理的计算模型。MapReduce模型中的“Map”和“Reduce”的设计灵感受到了函数式编程中的Map()和Reduce()两个功能函数的启发。在MapReduce模型中,“Map”意为“映射”,是指将一个大任务分割为多个小任务,以便对这些小任务进行并行计算;“Reduce”意为“归约”,是指将并行计算后得到的结果进行汇总。因此,可以说,“Map”和“Reduce”就是MapReduce模型的核心思想的最好诠释。MR3.3.2MapReduce并行编程模型并行编程技术MapReduce模型的大致执行过程输入Input分解Split映射Map重排Shuffle归约Reduce输出Finalize3.3.2MapReduce并行编程模型并行编程技术使用MapReduce模型建立倒排索引云计算与大数据分布式数据存储实例-ApacheHadoop项目并行编程技术数据管理技术3.4数据管理技术数据管理技术

云计算的特点是对海量数据进行存储和分析,这要求云计算的数据管理系统必须支持海量数据的高速存储(hugestorage)、高频的并行读写和并发访问(highperformance)、快速的横向扩展(highscalability)和高可用性(highavailability)。

传统的关系型数据库无法满足云计算的数据管理需求,因此,人们提出了“NoSQL数据库”的概念。3.4数据管理技术数据管理技术

关系型数据库(relationaldatabase)是指采用关系模型组织和存储数据的数据库,关系模型可将实体数据抽象为逻辑关系,并存储在由行和列组成的二维表格中。表格中的数据称为行数据或结构化数据,它们遵循严格的存储规范(如数据格式和长度规范等),用户可通过结构化查询语言(structuredquerylanguage,SQL)对数据进行查询、控制和定义等操作。由于关系型数据库普遍使用SQL作为查询语言,因此SQL数据库逐渐成为了关系型数据库的代名词。3.4.1NoSQL数据库概述数据管理技术NoSQL数据库采用了松耦合的数据存储模式,它不再使用关系模型作为数据存储模型(故NoSQL也称为“非关系型数据库”),数据不必存储在行列分明的二维表格中,也无须遵循严格的存储规范,开发人员可自行制定存储规范。3.4.1NoSQL数据库概述数据管理技术NoSQL

在数据库中存储的数据单位称为“值(value)”,每个值均有与之相匹配的“键(key)”,通过“键”可迅速查找到“值”.原理键值映射

查找速度较快,但数据库整体的存储结构较混乱特性

线上多媒体或社交平台(如Youtube、Instagram)适用场景Redis、Riak、AWSDynamoDB代表产品3.4.1NoSQL数据库概述数据管理技术NoSQL

可看作SQL数据库中表的扩展,表中仍存在键,但键不再指向某一列,而是若干列,称为列族或列簇。原理列族

相关数据可存放在一起,查找和扩展方便。特性博客平台

(如Facebook)适用场景HbaseCassandra代表产品3.4.1NoSQL数据库概述数据管理技术NoSQL

也可看作一种键值映射。一个文档即为数据库的最小存储单位,每个文档本身即为“值”,且均具有与之对应的“键”(如文档标题、哈希值等)以便于查找文档.文档

文档查找速度快,数据库对数据结构和存储规范要求不严格。特性企业日志(如SAP)适用场景MongoDBRavenDB代表产品原理3.4.1NoSQL数据库概述数据管理技术NoSQL

使用了最短路径寻址、N度关系查询等图结构算法,以图存储为核心的数据库。原理图

可实现图片的快速存储和查找等操作。特性适用场景以图片存储为主的云存储服务(如AdobeCreativeCloud)Neo4J代表产品3.4.2Bigtable数据管理技术Bigtable是一个由谷歌公司设计并开发的NoSQL数据库模型,它是谷歌公司云计算数据处理的关键技术之一,用于管理Google各服务(如GoogleAnalytics、GoogleFinance、GoogleEarth等)产生的海量数据。

与传统的关系型数据库相比,Bigtable的数据存储方式更加灵活,它不再使用传统的关系模型,而是为用户提供了简单灵活的数据存储模型,甚至可以说,存储在Bigtable中的数据没有固定的格式,用户可以动态地控制数据的分布和格式,也可以自定义数据格式。3.4.2Bigtable数据管理技术Bigtable采用了键值映射的数据存储模式,在一个键值映射中,每个键由行关键字(row)、列关键字(column)和时间戳(time)3个维度共同组成。其中,行关键字和列关键字的数据类型均为字节数组(string),时间戳的数据类型则为64位整型(int)。Bigtable的键值映射数据模型3.4.2Bigtable数据管理技术

在Bigtable

假设要存储一个项目,这个项目包括海量的网页及相关数据,现将此项目中的所有文件均存储在一张称为Webtable的表中,其数据结构如图所示。在Webtable表中存储网页时,行关键字是网页的URL(假设为),并将URL的倒排形式(即)作为行名;列关键字由内容列和锚链接文本列族组成,其中内容列存储着网页的内容,列名为“contents:”,锚链接文本列族由两个存储着链接文本的列组成(假设每个文本占用1列),列名为“anchor:”;时间戳代表数据进入Bigtable的准确时间,数据的不同版本按照时间戳降序存储,例如,可以用(“”,“contents”,t5)找到主页在t5时刻的内容。3.4.2Bigtable数据管理技术

在Bigtable

云计算与大数据分布式数据存储数据管理技术并行编程技术实例-ApacheHadoop项目3.5实例—ApacheHadoop项目实例—ApacheHadoop项目谷歌

谷歌公司在2003年、2004年和2006年分别发表了3篇论文,依次阐释和论证了GFS、MapReduce模型和Bigtable的基本思想和原理。这3篇论文不仅成为谷歌公司云计算技术设计和开发的理论基础,确立了谷歌公司在云计算领域的先驱和领跑者地位,还奠定了云计算与大数据技术的基本框架。受到谷歌公司3篇论文的启发,各互联网公司或组织均开始尝试研发自家的分布式计算平台,其中最著名的是Apache软件基金会的Hadoop项目。3.5.1Hadoop简介

实例—ApacheHadoop项目Hadoop最初的设计目的是解决其ApacheLucence项目中Nutch子项目的数据存储和扩展性问题,后来独立成为Apache的顶级项目,并在云计算和大数据领域大放异彩,成为各大软件厂商广泛使用的大数据分析与挖掘工具。Hadoop的核心设计目标01

易于编程

Hadoop对分布式系统上的程序设计进行了简化,将底层的设计细节抽象化、模块化后交由系统实现,从而使得用户可以更关心应用的逻辑实现,大大减少了开发人员的工作量,提高了程序开发效率。0302

良好的扩展性Hadoop力求通过简单易行且成本较低的横向扩展方案扩大分布式系统的集群规模,确保随着任务规模的不断扩大,集群的性能也可以同步增长。

高容错性

随着集群规模的增大,集群中节点的故障率也会显著增加,如磁盘损坏或节点宕机导致的数据丢失。Hadoop复制因子的概念可通过多地备份,自动迁移和复制等特性来达到集群可用性和容错性的要求。3.5.2Hadoop生态系统

实例—ApacheHadoop项目

作为Google云计算体系的开源实现,Hadoop也具有3大核心技术,即与GFS对应的HDFS、与MapReduce模型相对应的HadoopMapReduce,以及与Bigtable对应的Hbase。基于这3大核心技术的Hadoop现已发展成了一个庞大的多元化生态系统。MahoutAmbariZookeeperFlumePigHiveSqoopSparkHadoopKafka3.5.2Hadoop生态系统

实例—ApacheHadoop项目Hadoop

的3

术HDFS

是Apache基金会受到谷歌GFS论文《谷歌文件系统》启发而设计和开发的分布

文件系统,它可部署在由几十台、上百台甚至上千台主机组成的分布式系统

中,并具有高可用性、高容错率、高性能和高扩展性等特点,因此常用于存储

和管理海量数据。3.5.2Hadoop生态系统

实例—ApacheHadoop项目Hadoop

的3

术3.5.2Hadoop生态系统

实例—ApacheHadoop项目Hadoop

的3

术NameNode是集群的核心管理部分,一个Hadoop集群中只有一个NameNode,它负责管理HDFS的目录树和维护相关的文件元数据信息,这些信息包括HDFS元数据镜像文件和文件改动日志等。NameNodeDataNode是HDFS系统中的各存储节点,它们将数据以固定大小(默认为64MB)的块(block)进行存储。DataNode01023.5.2Hadoop生态系统

实例—ApacheHadoop项目Hadoop

的3

术HadoopMapReduce

是根据谷歌MapReduce论文《MapReduce:大规模集群中的简化数据处理》设计的一个并行编程模型的开源版本,它可将大型数据处理任务进行分片处理,分配给分布式系统中的多台计算机进行并行计算,并将最终的结果进行汇总,以实现大数据的并行计算。MapReduce是整个Hadoop生态系统的核心技术,也是HDFS得以实现的技术支撑。3.5.2Hadoop生态系统

实例—ApacheHadoop项目Hadoop

的3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论