《大数据导论》课件第3章 大数据存储与计算.pptx

上传人(卖家):momomo 文档编号:7651554 上传时间:2024-05-24 格式:PPTX 页数:75 大小:1.49MB
下载 相关 举报
《大数据导论》课件第3章 大数据存储与计算.pptx_第1页
第1页 / 共75页
《大数据导论》课件第3章 大数据存储与计算.pptx_第2页
第2页 / 共75页
《大数据导论》课件第3章 大数据存储与计算.pptx_第3页
第3页 / 共75页
《大数据导论》课件第3章 大数据存储与计算.pptx_第4页
第4页 / 共75页
《大数据导论》课件第3章 大数据存储与计算.pptx_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、第3章 大数据存储与计算提纲3.1 大数据存储3.2 HDFS文件系统3.3 NoSQL数据库3.4 Hbase数据库3.5 大数据处理3.6 分布式计算3.7 MapReduce模型3.8 Spark通用计算框架大数据导论3.1 大数据存储Big Data(大数据技术)作为一个专有名词成为热点,主要应归功于近年来互联网、云计算、移动和物联网的迅猛发展。无所不在的移动设备、RFID、无线传感器每分每秒都在产生数据,数以亿计用户的互联网服务时时刻刻在产生巨量的交互,要处理的数据量实在是太大、增长太快了,而业务需求和竞争压力对数据处理的实时性、有效性又提出了更高要求。在这种情况下,传统的常规技术针

2、对大数据存储要求,采取了一些新存储架构和方法,主要包括DAS/NAS/SAN存储结构。但基于存储设备的性能、成本等问题的考虑,架构基于大规模分布式计算(MPP)的GFS/HDFS分布式文件系统、各种NoSQL分布式存储方案等应运而生。3.1.1 大数据如何存储1.结构化数据存储结构化数据通常是人们所熟悉的数据库中的数据,它本身就是一种对现实已发生事项的关键要素进行抽取的有价信息。现在各类企业和组织都有自己的管理信息系统,随着时间的推移,数据库中积累的结构化数据越来越多,一些问题显现出来,这些问题可以分为四类:1)历史数据和当前数据都存在一个数据库中,导致系统处理速度越来越慢;2)历史数据与当前

3、数据的期限如何界定;3)历史数据应如何存储;4)历史数据的二次增值如何解决。3.1.1 大数据如何存储1.结构化数据存储问题1和问题2可以一起处理。导致系统处理速度越来越慢的原因除了传统的技术架构和当初建设系统的技术滞后于业务发展之外,最主要的是对于系统作用的定位问题。从过去30年管理信息系统发展的历史来看,随着信息技术的发展和信息系统领域的不断细分,可将信息系统分为两类,一类是基于目前的数据生产管理信息系统,一类是基于历史的数据应用管理信息系统。问题3和问题4可以放在一起处理。由于历史数据量规模庞大,相对稳态,其存储和加工处理与数据生产管理系统的思路应有很大的不同。结构化数据存储是为了分析而

4、存储,采用分布式方式,其目标有两个:一是在海量的数据库中快速查询历史数据,二是在海量的数据库中进行有价值信息的分析和挖掘。2.非结构化数据存储常见的非结构化数据包括文件、图片、视频、语音、邮件和聊天记录等,和结构化数据相比,这些数据是未被抽象出有价值信息的数据,需要经过二次加工才能得到其有价值信息。由于非结构化数据的生产不受格式约束、不受主题约束,人人随时都可以根据自己的视角和观点进行创作生产,所以数据量比结构化数据大。由于非结构化数据具有形式多样、体量大、来源广、维度多、有价内容密度低、分析意义大等特点,所以要为了分析而存储,而不是为了存储而存储,即存储工作是分析的前置工作。当前针对非结构化

5、数据的特点均采用分布式文件系统方式来存储这些数据。3.1.1 大数据如何存储3.半结构化数据存储半结构化数据是指数据中既有结构化数据,也有非结构化数据,比如,摄像头回转给后端的数据中有位置、时间等结构化数据,还有图片等非结构化数据。这些数据是以数据流的形式传递的,所以半结构化数据也叫流数据。对流数据进行处理的系统叫做数据流系统。数据流的特点是数据不是永久存储在数据库中的静态数据,而是瞬时处理的源源不断的连续数据流。在大量的数据流应用系统中,数据流来自于地理上不同位置的数据源,非常适合分布式查询处理。3.1.1 大数据如何存储1.1.容量容量问题问题要求数据容量通常可达要求数据容量通常可达PBP

6、B级,因此,海量数据存储系统一定要有相应等级的扩展能力。同时存储系统级,因此,海量数据存储系统一定要有相应等级的扩展能力。同时存储系统的扩展一定要简便,可以通过增加模块或磁盘组来增加容量,扩展时甚至不需要停机。的扩展一定要简便,可以通过增加模块或磁盘组来增加容量,扩展时甚至不需要停机。2.2.延迟延迟问题问题“大数据大数据”应用存在实时性问题,特别是涉及与网上交易或者金融类相关的应用。为了应对这样的挑应用存在实时性问题,特别是涉及与网上交易或者金融类相关的应用。为了应对这样的挑战,各种模式的固态存储设备应运而生,小到简单地在服务器内部做高速缓存,大到通过高性能闪存战,各种模式的固态存储设备应运

7、而生,小到简单地在服务器内部做高速缓存,大到通过高性能闪存存储的全固态介质可扩展存储系统,以及自动、智能地对热点数据进行读存储的全固态介质可扩展存储系统,以及自动、智能地对热点数据进行读/写高速缓存的系列产品。写高速缓存的系列产品。3.3.安全安全问题问题某些特殊行业的应用,比如金融数据、医疗信息以及政府情报等都有自己的安全标准和保密性要求。某些特殊行业的应用,比如金融数据、医疗信息以及政府情报等都有自己的安全标准和保密性要求。同时,大数据分析往往需要多类数据的相互参考,因此,会催生出一些新的、需考虑的安全问题。同时,大数据分析往往需要多类数据的相互参考,因此,会催生出一些新的、需考虑的安全问

8、题。4.4.成本成本问题问题对于需要使用大数据环境的企业来说,成本控制是关键问题。想控制成本,就意味着让每一台设备实对于需要使用大数据环境的企业来说,成本控制是关键问题。想控制成本,就意味着让每一台设备实现更高效率,同时尽量减少昂贵的部件。目前,重复数据删除技术已进入主存储市场现更高效率,同时尽量减少昂贵的部件。目前,重复数据删除技术已进入主存储市场。3.1.2 大数据存储的问题5.5.数据的积累数据的积累任何任何数据都是历史记录的一部分,而且数据的分析大多是基于时间段进行的。要实现长期的数据都是历史记录的一部分,而且数据的分析大多是基于时间段进行的。要实现长期的数据保存,就要求存储厂商开发出

9、能够持续进行数据一致性检测和保持长期高可用特性的产数据保存,就要求存储厂商开发出能够持续进行数据一致性检测和保持长期高可用特性的产品,同时还要满足数据直接在原位更新的功能需求。品,同时还要满足数据直接在原位更新的功能需求。6.6.灵活性灵活性大数据存储系统的基础设施规模通常很大,因此必须经过仔细设计才能保证存储系统的灵活大数据存储系统的基础设施规模通常很大,因此必须经过仔细设计才能保证存储系统的灵活性,使其能够随着应用分析软件一起扩容及扩展。在大数据存储环境中,数据会同时保存在性,使其能够随着应用分析软件一起扩容及扩展。在大数据存储环境中,数据会同时保存在多个部署站点,已不需要再做数据迁移。一

10、个大型的数据存储基础设施投入使用后就很难再多个部署站点,已不需要再做数据迁移。一个大型的数据存储基础设施投入使用后就很难再调整,因此它必须能适应不同应用类型和数据场景。调整,因此它必须能适应不同应用类型和数据场景。7.7.应用应用感知感知最早的一批大数据用户已经开发出针对应用的定制化的基础设施,在主流存储系统领域,应最早的一批大数据用户已经开发出针对应用的定制化的基础设施,在主流存储系统领域,应用感知技术的使用越来越普遍,它是改善系统效率和性能的重要手段,用感知技术的使用越来越普遍,它是改善系统效率和性能的重要手段,8.8.针对针对小用户小用户依赖大数据的不仅仅是特殊的大型用户群体,作为一种商

11、业需求,小型企业也将会用到大数依赖大数据的不仅仅是特殊的大型用户群体,作为一种商业需求,小型企业也将会用到大数据。目前一些存储厂商已经在开发一些小型的据。目前一些存储厂商已经在开发一些小型的“大数据大数据”存储系统,以吸引那些对成本比较存储系统,以吸引那些对成本比较敏感的用户。敏感的用户。3.1.2 大数据存储的问题3.2 HDFS文件系统3.2.1 3.2.1 相关相关概念概念1存储块HDFS使用Block(存储块)对文件的存储进行操作,Block是HDFS的基本存储单元,在Hadoop1.x中默认大小是64M,Hadoop2.x中大小默认为128M,一个文件被分成多个块,以块作为存储单位块

12、的大小远远大于普通文件系统,可以最小化寻址开销。HDFS采用抽象的块概念可以带来以下几个明显的好处:支持大规模文件存储:文件以块为单位进行存储,一个大规模文件可以被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上,因此,一个文件的大小不会受到单个节点的存储容量的限制,可以远远大于网络中任意节点的存储容量。简化系统设计:首先,大大简化了存储管理,因为文件块大小是固定的,这样就可以很容易计算出一个节点可以存储多少文件块;其次,方便了元数据的管理,元数据不需要和文件块一起存储,可以由其他系统负责管理元数据。适合数据备份:每个文件块都可以冗余存储到多个节点上,大大提高了系统的容错性和可用性。3

13、.2 HDFS文件系统2 2NameNodeNameNode、SecondaryNameNodeSecondaryNameNode和和DataNodeDataNodeNameNode管理文件系统的命名空间。NameNode维护两套数据:一套是文件目录与数据块之间的映射关系,另一套是数据块与节点间的关系。SecondaryNameNode第二名称节点是HDFS架构中的一个组成部分,它是用来保存名称节点中对HDFS元数据信息的备份,并减少名称节点重启的时间。SecondaryNameNode一般是单独运行在一台机器上。DataNode数据节点是分布式文件系统HDFS的工作节点,负责数据的存储和读取

14、,会根据客户端或者是名称节点的调度来进行数据的存储和检索,并且向名称节点定期发送自己所存储的块的列表。每个数据节点中的数据会被保存在各自节点的本地Linux文件系统中。3.2 HDFS文件系统3.3.心跳机制心跳机制所谓“心跳”是一种形象化描述,指的是持续的按照一定频率在运行,类似于心脏在永无休止的跳动。这里指的是DataNode向NameNode发送心跳的周期是3秒,NameNode周期性的从集群中的每个DataNode接收心跳包和块报告,NameNode可以根据这个报告验证块映射和其他文件系统元数据。收到心跳包说明DataNode工作正常。如果DataNode不能发出心跳信息,NameNo

15、de会标记没有心跳的DataNode为宕机,不会给它任何新的I/O请求。4.4.机架感知机架感知Hadoop在设计时考虑到数据的安全与高效,数据文件默认在HDFS上存放三份,存储策略为本地一份,同机架内其它某一节点上一份,不同机架的某一节点上一份。这样如果本地数据损坏,节点可以从同一机架内的相邻节点拿到数据,速度肯定比从跨机架节点上拿数据要快;同时,如果整个机架的网络出现异常,也能保证在其它机架的节点上找到数据。3.2.2 HDFS分布式文件系统的结构HDFS采用Master/Slave架构。一个HDFS集群是由一个NameNode和一定数目的DataNodes组成。NameNode是一个中心

16、服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。集群中的DataNode一般是一个节点一个,负责管理它所在节点上的存储。HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组DataNode上。NameNode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录。它也负责确定数据块到具体DataNode节点的映射。DataNode负责处理文件系统客户端的读写请求。在NameNode的统一调度下进行数据块的创建、删除和复制,如图3-1所示的HDFS文件系统整体结构。3.2.2 H

17、DFS分布式文件系统的结构2.3.3 HDFS存储原理1.1.冗余数据保存冗余数据保存作为一个分布式文件系统,HDFS 的主要设计目标就是为了保证系统的容错性和可用性,HDFS采用了多副本方式对数据进行冗余存储,通常一个数据块的多个副本会被分布到不同的数据节点上,HDFS默认的副本系数是3,这适用于大多数情况。如图所示,数据块A被分别存放到数据节点1和2和4上,数据块B被存放在数据节点2、4和5上。这种多副本方式具有以下几个优点:这种多副本方式具有以下几个优点:(1)加快数据传输速度 (2)容易检查数据错误 (3)保证数据可靠性3.2.3 HDFS存储原理1.1.数据存取策略数据存取策略1)数

18、据存放第一个副本:放置在上传文件的数据节点;如果是集群外提交,则随机挑选一台磁盘不太满、CPU不太忙的节点。第二个副本:放置在与第一个副本不同的机架的节点上。第三个副本:与第一个副本相同机架的其他节点上。更多副本:随机节点。3.2.3 HDFS存储原理1.1.数据存取策略数据存取策略2)数据数据读取读取当客户端读取数据时,从名称节点获得数据块不同副本的存放位置列表,列表中包含了副本所在的数据节点,可以调用API来确定客户端和这些数据节点所属的机架ID,当发现某个数据块副本对应的机架ID和客户端对应的机架ID相同时,就优先选择该副本读取数据,如果没有发现,就随机选择一个副本读取数据3 3)数据复

19、制)数据复制 数据复制主要是在数据写入和数据恢复的时候发生。当客户端向HDFS文件写入数据的时候,一开始是写到本地临时文件中。假设该文件的副本系数设置为3,当本地临时文件累积到一个数据块的大小时,客户端会从NameNode获取一个DataNode列表用于存放副本。然后客户端开始向第一个DataNode传输数据,第一个DataNode一小部分一小部分(4 KB)地接收数据,将每一部分写入本地仓库,并同时传输该部分到列表中第二个DataNode节点。第二个DataNode也是这样,一小部分一小部分地接收数据,写入本地仓库,并同时传给第三个DataNode。最后,第三个DataNode接收数据并存储

20、在本地。3.3 NOSQL数据库NoSQL(Not Only SQL),意即“不仅仅是SQL”,泛指非关系型的数据库,是一项全新的数据库革命性运动。NoSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系型数据库。2009年Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NoSQL的概念,这时的NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。2009年在亚特兰大举行的“no:sql(east)”讨论会是一个里程碑,其口号是select

21、fun,profit from realworld where relational=false;”。因此,对于NoSQL,最普遍的解释是“非关联型的”,强调键值存储和文档数据库的优点,而不是单纯地反对RDBMS。相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。3.3 NOSQL数据库3.3.1 3.3.1 NoSQLNoSQL的产生的产生传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站方面,已经显得力不从心,暴露了很多难以克服的问题,主要包括以下几个方面:1.对数据库高并发读写的性能需求:Web2.0网站要根据用户个

22、性化信息来实时生成动态页面和提供动态信息,所以,基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘I/O就已经无法承受了。其实对于普通的 BBS 网站,往往也存在对高并发写请求的需求。3.3 NOSQL数据库2.对海量数据的高效率存储和访问的需求:对于大型的SNS站,每天用户产生海量的用户动态,以国外的Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下甚至是不可忍受的。再例如大型Web网站

23、的用户登录系统,例如腾讯和盛大,动辄数以亿计的帐号,关系数据库也很难应付。3.对数据库的高可扩展性和高可用性的需求:在基于Web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,你的数据库却没有办法像网页服务器和应用服务器那样简单地通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。3.2.2 NOSQL与RDBMS关系型关系型数据库数据库与与NoSQLNoSQL的的简单简单比较比较3 3.3 3.3.3 NOSQLNOSQL的分类的分类NoS

24、QL仅仅是一个概念,NoSQL数据库根据数据的存储模型和特点分为很多种类,如何对他们分类,以便方便地根据自己应用特色选择不同的NoSQL数据库呢?NoSQL主要有六种存储类型:列存储、文档存储、Key-value存储、图存储、对象存储、xml数据库,如表所示。3.3.4 NOSQL与NEWSQL虽然NoSQL数据库提供了高扩展性和灵活性,但是它也有自己的缺点,主要有以下几个方面:1.数据模型和查询语言没有数字验证。SQL基于关系代数和关系演算的查询结构有坚实的数学保证,由于NoSQL没有使用SQL,而使用一些模型还未有完善的数学基础,这也是NoSQL系统较为混乱的主要原因之一。2.不支持ACI

25、D特性。这为NoSQL带来优势的同时也带了了缺点,事务在有些情况下需要ACID特性使得系统在中断情况下也能保证在线事务准确执行。3.功能简单。大多数NoSQL系统提供的功能比较简单,这就增加了应用层的负担。例如应用层要实现ACID,那么编写代码的程序员一定极其痛苦。4.没有统一的查询模型。NoSQL系统一般提供不同的查询模型,这使得很难规范应用程序接口。3.3.4 NOSQL与NEWSQLNewSQL 是用于在线事务处理(OLTP)的下一代可伸缩关系数据库管理系统(RDBMS),它可为读写工作负载提供NoSQL系统的可伸缩性能,并且维护保证传统数据库系统的ACID(原子性,一贯性,隔离,耐久性

26、)。这些系统通过employingNoSQL样式的功能(如面向列的数据存储和分布式体系结构)来突破传统的RDBMS性能限制,或采用内存处理、对称多处理(SMP)或Massively 并行加工等技术,并集成NoSQL或Searchcomponents,旨在处理大数据的体积、品种、速度和变异性等难题。3.3.4 NOSQL与NEWSQLNewSQL 数据库的分类类似于NoSQL,有许多类别的NewSQL解决方案。分类是基于供应商为保留 SQL接口而采用的不同方法,并解决传统的OLTP解决方案的可伸缩性和性能问题。NewSQL系统可分为三类新的体系结构数据库新的体系结构数据库点集群中运行的。这些数据

27、库通常是从头编写的,并考虑到分布式体系结构,包括分布式并发控制、流控制和分布式查询处理等组件。这类数据库有VoltDB、NuoDB Clustrix等。新的新的 MySQL MySQL 存储引擎存储引擎相同的编程接口,但比内置引擎(如InnoDB)更有规模。这些新的存储引擎的例子包括 TokuDB 和 InfiniDB。透明聚类透明聚类/切分切分这些解决方案保留了OLTP 数据库的原始格式,为群集提供了可插入的功能,以确保可伸缩性。3 3.4.4 HBASEHBASE数据库数据库3.4.1 Hbase简介HBase即Hadoop Database,是一个分布式的、面向列的开源数据库,该技术来源

28、于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。数据模型HBase的数据模型也是由一张张的表组成,每一张表里也有数据行和列,但是在HBase数据库中的行和列又和关系型数据库的稍有不同。下面统一介绍HBas

29、e数据模型中一些名词的概念:表(Table):HBase会将数据组织进一张张的表里面,但是需要注意的是表名必须是能用在文件路径里的合法名字,因为HBase的表是映射成hdfs上面的文件。行键(Row Key):HBase表的主键,表中的记录按照行键排序;时间戳(Timestamp):每次数据操作对应的时间戳,可以看作是数据的版本号;列族(Column Family):表在水平方向有一个或者多个列族组成,一个列族中可以由任意多个列组成,即列族支持动态扩展,无需预先定义列的数量以及类型,所有列均以二进制格式存储,用户需要自行进行类型转换。单元(Cell):每一个 行键,列族和列标识共同组成一个单元

30、,存储在单元里的数据称单元数据,单元和单元数据也没有特定的数据类型,以二进制字节来存储。3 3.4.4.1 1 H HB BASEASE简介简介HBase的系统架构个功能组件类似于HDFS,由ZooKeeper、HMaster、HRegionServer组成。其中HMaster的作用类似于HDFS中的NameNode名字节点;HRegionServer的作用类似于数据节点DataNode。3 3.4.4.2 2 H HB BASEASE体系结构体系结构1)Client Client 是Hbase功能的使用者,包含访问 HBase 的接口,client 维护着一些缓存来加快对 HBase 的访问

31、,比如HRegion 的位置信息。HBase Client 使用 HBase 的 RPC 机制与 HMaster 和 HRegionServer 进行通信。对于管理类操作,Client 与 HMaster 进行 RPC;对于数据读写类操作,Client 与 HRegionServer 进行RPC。2)zookeeper协调者Zookeeper存储了RegionServer的状态信息、HMaster地址,存储Hbase的schema,包括有哪些table,每个table有哪些column family。监控主Master和备用Master,一旦主Master异常马上启用备用Master。HMas

32、ter随时感知各个HRegionServer的健康状况。3 3.4.4.2 2 H HB BASEASE体系结构体系结构3)HMaster管理者HMaster 没有单点问题,HBase 中可以启动多个 HMaster,通过 Zookeeper 的 Master Election 机制保证总有一个 HMaster 运行,HMaster 在功能上主要负责表和 HRegion 的管理工作:管理用户对表的增、删、改、查操作;管理 HRegionServer 的负载均衡,调整 HRegion 分布;在 HRegion 分裂后,负责新 HRegion 的分配;在 HRegionServer 停机后,负责失

33、效 HRegionServer 上的 HRegion 的迁移。每个 HRegion 服务器都会和 HMaster 服务器通讯,HMaster 的主要任务就是要告诉每个HRegion 服务器它要维护哪些 HRegion。3 3.4.4.2 2 H HB BASEASE体系结构体系结构4)HRegionServer存储者HregionServer是HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据。HRegionServer 内部管理了一系列 HRegion 对象,每个 HRegion 对应着表(Table)中的一个 HRegion,HRegion 由多个 HSto

34、re 组成。每个 HStore 对应了表中的一个列族的存储,可以看出,每个列族其实就是一个集中的存储单元,因此,最好将具备共同 IO 特性的列放在一个列族中,这样最高效。Client 访问 HBase 上数据的过程并不需要 HMaster 参与(寻址访问 Zookeeper 和HRegionServer,数据读写访问 HRegionServer),HMaster 仅仅维护着表和 HRegion 的元数据信息,负载很低。3 3.4.4.2 2 H HB BASEASE体系结构体系结构1.1.物理模型物理模型用户在表格中存储数据,每一行都有一个可排序的主键和任意多的列。由于是稀疏存储,同一张里面的

35、每一行数据都可以有截然不同的列。列名字的格式是:,都是由字符串组成的,每一张表有一个列族集合,这个集合是固定不变的,只能通过改变表结构来改变。但是qulifier值相对于每一行来说都是可以改变的。HBase把同一个列族里面的数据存储在同一个目录下,并且HBase的写操作是锁行的,每一行都是一个原子元素,都可以加锁。HBase所有数据库的更新都有一个时间戳标记,每个更新都是一个新的版本,HBase会保留一定数量的版本,这个值是可以设定的,客户端可以选择获取距离某个时间点最近的版本单元的值,或者一次获取所有版本单元的值。3 3.4.4.3 3 HBASEHBASE数据数据模型模型2.2.概念视图概

36、念视图可以将一个表想象成一个大的映射关系,通过行健、行健+时间戳或行键+列(列族:列修饰符),就可以定位特定数据,HBase是稀疏存储数据的,因此某些列可以是空白的,下表是某个test表的HBase概念视图。3 3.4.4.3 3 HBASEHBASE数据数据模型模型3.5 3.5 大数据处理大数据处理3.5.1 3.5.1 多处理器技术多处理器技术1.单处理器计算性能的发展提升单处理器计算机系统计算速度的常用技术手段有以下几个方面:1)提升计算机处理器字长。2)提高处理器芯片集成度。3)提升处理器的主频。4)改进处理器微架构。2.2.多处理器多处理器技术的发展技术的发展大数据处理的基本单元是

37、计算机,作为计算机核心的处理器的功能是将输入的数大数据处理的基本单元是计算机,作为计算机核心的处理器的功能是将输入的数字化数据和信息进行加工和处理,然后将结果输出。因此处理器的性能往往是决字化数据和信息进行加工和处理,然后将结果输出。因此处理器的性能往往是决定计算机性能高低的决定性因素。衡量一个具有定计算机性能高低的决定性因素。衡量一个具有N N个处理器的计算节点的性能指标个处理器的计算节点的性能指标可用公式可用公式(3-1)(3-1)表示。表示。公式公式(3-1)(3-1)IPS的计算过程包括两部分,前半部分是单个处理器计算能力的计算过程,后半部分是N个并行处理器结合后该计算节点的计算能力的

38、计算过程。在前半部分中,MF(Main Frequency)为处理器的主频,即处理器内核工作的时钟频率(Clock Speed);IPC(Instruction Per Clock)为每个时钟周期内可执行的指令数。在后半部分中,F为计算工作中不可被并行化的部分所占比例;N为处理器数量。从公式中可以看出,提高计算节点的性能有两个途径,一方面是增加单处理器的计算能力;另一方面是增加处理器的数量从公式可以看出,提高处理器的主频(MF)是提升计算能力的最直接方式3.5.1 多处理器技术多处理器计算系统按照其结构特征,通常可以分为两类:非对称多处理器架构(Asymmetric Multi Process

39、ing,ASMP);对称多处理器架构(Symmetric Multi Processing,SMP)3.5.1 多处理器技术3.5.2并行计算并行计算并行计算(Parallel Computing)(Parallel Computing)是指在具有并行处理能力的计算节点上,将一个计是指在具有并行处理能力的计算节点上,将一个计算任务分解成多个并行子任务,并分配给不同的处理器,各个处理器之间相互协同,算任务分解成多个并行子任务,并分配给不同的处理器,各个处理器之间相互协同,并行地执行子任务,从而达到加速计算速度或提升计算规模的目的并行地执行子任务,从而达到加速计算速度或提升计算规模的目的。为了为了

40、成功开展并行计算,必须具备三个基本条件:并行机;并行算法的设计;并行成功开展并行计算,必须具备三个基本条件:并行机;并行算法的设计;并行编程编程。3.2并行计算1.1.并行机并行机并行计算的基础是具有并行处理能力的计算节点,即并行机,并行机需包含两个或两个以上的处理器,这些处理器通过互连网络相连,协同并行工作。并行机的核心要素主要包括3个:处理器、内存、网络,因此计算节点并行化研究工作也就集中在这3个核心要素的并行化上。处理器通常采用以下几种方式对处理器资源进行并行化提升超标量(Superscalar)技术显式并行指令计算(Explicitly Parallel Instructions Co

41、mputing,EPIC)向量处理器(Vector Processor)多线程(Multithreading)技术内存的并行化方式可以分为两类。分布式内存结构。共享内存结构3.5.2 并行计算互连网络是连接所有处理节点形成并行机的高速网络,因此是决定并行机性能的第三个核心因素。在这里对这些网络结构按照其连接性质做一个简要的分类。1)静态拓扑结构静态拓扑结构即处理节点之间通过固定的物理连接相连,且在程序运行的过程中节点间的连接方式不发生变化。这样的静态拓扑结构包括阵列(Array)、环(Ring)、网格(Mesh)、环面(Torus)、树(Tree)、超立方体(Hypercube)、蝶网(But

42、terfly)、Benes网等。2)动态拓扑结构动态拓扑结构即在处理节点之间的连接路径交叉处采用电子开关、路由器或仲裁器等动态连接设备,实现节点间的动态连接。动态拓扑结构包括单一总线、多层总线、交叉开关、多级互连网络等。3)高速互联网络高速互联网络是随着网络技术的发展而新产生的新的并行机互连网络。在高速互联网络模式下,处理节点间可以通过高速以太网或专用交换机相连,实现高达G比特甚至T比特级的数据交换。高速互联网络的引入,降低了并行机互连网络的设计难度和研发成本,使得采用普通计算机集群作为并行技术节点成为可能,极大地推动了并行计算的应用领域和规模。3.5.2 并行计算2.并行算法 适合并行机处理

43、的计算任务普遍具有可分解为多个并行子任务的特性,将一个大的计算任务分解为多个可执行的并行子任务的过程即为并行算法的设计。一个好的并行算法设计,可以极大地提升计算任务的并行度,即可降低式(3-1)中的参数F,从而实现在并行计算环境下的更高性能处理。并行算法的设计过程,可以分为以下4个阶段3.5.2 并行计算1)划分(Partitioning)划分方法描述充分开拓算法的并发性和可扩放性;先进行数据分解(称域分解),再进行计算功能的分解(称功能分解);使数据集和计算集互不相交;划分阶段忽略处理器数目和目标机器的体系结构;能分为两类划分:域分解(domain decomposition)功能分解(fu

44、nctional decomposition)3.5.2 并行计算2)通信a、通信描述通讯是PCAM设计过程的重要阶段;划分产生的诸任务,一般不能完全独立执行,需要在任务间进行数据交流;从而产生了通讯;功能分解确定了诸任务之间的数据流;诸任务是并发执行的,通讯则限制了这种并发性;b、四个通讯模式局部/全局通讯结构化/非结构化通讯静态/动态通讯同步/异步通讯3.5.2 并行计算3)任务组合进入到任务聚合阶段后,设计者就需要仔细考虑实际环境中的各种限制因素进行优化以最终实现高效的并行算法。任务聚合是将前面阶段划分出的细粒度子任务进行组合成粗粒度的较大子任务,以达到以下3个目标。a)扩大任务粒度,以

45、避免大量细粒度任务带来的额外过量通信开销和任务创建开销,从而提高算法的性能。b)保持算法可扩展度,在任务聚合时要避免过度聚合,要保持足够的任务数量,以适应算法规模和运行环境的变化,以及利用任务间执行与通信的时间交错性提高算法性能。c)降低程序实现复杂度,过细粒度的任务划分通常会增加程序实现的复杂度,任务聚合需要通过一定的组合方式避免程序实现的过高复杂度。4)处理器映射(Mapping)并行算法设计的最后一步,是决定如何将拆分好的子任务指派到特定的处理器执行,即处理器映射。处理器映射算法的设计目标就是降低完成整个计算任务的处理器执行时间。为了达到这个目标,设计者需要仔细规划以达到两个目标的优化。

46、a)提高并行度,即尽量将那些可以并发执行的任务分配到不同的处理器中执行,以充分利用不同处理器的并行处理能力,降低执行时间。b)提高局部执行效率,即尽量将互相之间会产生频繁通信的任务分配在同一个处理器执行,以避免这些任务在不同处理器中增加额外的通信开销。3.5.2 并行计算3.6 分布式计算3.6.1 分布式计算简介随着信息化项目中数据的飞速增长,一些大任务要求计算机能应付大量的计算任务,此时单机并行计算或多机并行计算尤其对于分散系统(一组计算机通过计算机网络相互连通后形成的系统)的计算显示出局限性。分布式计算就是将计算任务分摊到大量的计算节点上,一起完成海量的计算任务。而分布式计算的原理和并行

47、计算类似,就是将一个复杂庞大的计算任务是当划分为一个个小任务。任务并行执行。只不过分布式计算会将这些任务分配到不同的计算节点上,每个计算节点只需要完成自己的任务即可,可以有效分担海量的计算任务。而每个计算节点也可以并行处理自身的任务。更加充分利用机器的CPU资源。最后再将每个节点计算结果汇总。再到最后的计算结果。1.1.分布式计算步骤分布式计算步骤划分计算任务以支持分布式计算,很多时候看起来较为困难。但人们逐渐发现这样确实是可行的。而且随着计算任务量增加与计算节点增加,这种划分体现出来的价值会越来越大。分布式计算一般分为以下几步:1)1)设计分布式计算模型设计分布式计算模型首先要规定分布式系统

48、的计算模型。计算模型决定了系统中各个组件应该如何运行。首先要规定分布式系统的计算模型。计算模型决定了系统中各个组件应该如何运行。组件之间应该如何进行消息通信,组件和节点应该如何管理等。组件之间应该如何进行消息通信,组件和节点应该如何管理等。2)2)分布式任务分配分布式任务分配分布式算法不同于普通算法。普通算法通常是按部就班一部接一部完成任务。而分分布式算法不同于普通算法。普通算法通常是按部就班一部接一部完成任务。而分布式计算中,计算任务是分摊到各个节点上的。该算法着重解决的是能否分配任务。布式计算中,计算任务是分摊到各个节点上的。该算法着重解决的是能否分配任务。我如何分配任务的问题。我如何分配

49、任务的问题。3.6.1 分布式计算简介2.2.分布式计算优点分布式计算优点分布式计算是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。分布式计算比起其它算法具有以下几个优点:1)稀有资源可以共享。2)通过分布式计算可以在多台计算机上平衡计算负载。3)可以把程序放在最适合运行它的计算机上。其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。3.6.1 分布式计算简介1 1CAPCAP理论理论2000年7月,加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后,麻省理工学院的Seth G

50、ilbert和Nancy Lynch从理论上证明了CAP。之后,CAP理论正式成为分布式计算领域的公认定理。一个分布式系统不可能同时满足一致性(C:Consistency)、可用性(A:Availability)和分区容错性(P:Partition tolerance)这三个基本需求,最多只能同时满足其中两项。3.6.2 分布式计算理论基础2 2BASEBASE理论理论BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的缩写。BASE理论是对CAP中一致性和可用性权衡的结果,其来源于对大

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《大数据导论》课件第3章 大数据存储与计算.pptx)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|