智能计算平台应用开发(中级)-第5章-数据存储-大数据储存管理_第1页
智能计算平台应用开发(中级)-第5章-数据存储-大数据储存管理_第2页
智能计算平台应用开发(中级)-第5章-数据存储-大数据储存管理_第3页
智能计算平台应用开发(中级)-第5章-数据存储-大数据储存管理_第4页
智能计算平台应用开发(中级)-第5章-数据存储-大数据储存管理_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

第5章数据存储大数据储存管理数据库存储管理存储系统维护和管理数据通常采用文件系统或数据库进行存储。在大数据存储方面也有相应的分布式文件系统和分布式数据库。常见的分布式文件系统HDFS常见的分布式数据库HiveHBase存储系统维护和管理——HDFS的应用HDFS不适合低时间延迟数据访问的应用HDFS是为高数据吞吐量应用优化的,这样就会造成以高时间延迟为代价,所以HDFS不适合低时间延迟数据访问的应用,例如几十毫秒范围。HDFS不适合多用户写入和任意修改文件目前HDFS文件只有一个writer,而且写操作总是写在文件的末尾,造成HDFS不适合多用户写入和任意修改文件。存储系统维护和管理——HDFS的应用HDFS不适合大量小文件存储NameNode启动时会将文件系统的元数据加载到内存,因此文件系统所能存储的文件总数受限于NameNode内存容量。假设每个文件、目录和数据块的存储信息大约占150字节,如果一百万个文件,且每个文件占一个数据块,那么至少需要300MB的内存空间。如果存储十亿个文件,那么需要的内存空间将是非常大的,所以HDFS不适合大量小文件存储。存储系统维护和管理——HDFS的应用高容错性。高吞吐量,为大量数据访问的应用提供高吞吐量支持。大文件存储,支持存储TB级别、PB级别的数据。需要很好的可扩展能力。HDFS适合具有以下需求的应用存储系统维护和管理——HDFS的应用HDFS是Hadoop技术框架中的分布式文件系统,对部署在多台独立物理机器上的文件进行管理。HDFS适用的场景网站用户行为数据存储生态系统数据存储气象数据存储……存储系统维护和管理——HDFS的系统架构HDFS的文件访问机制为流式访问机制,即通过API打开文件的某个数据块之后,可以顺序读取或者写入某个文件。由于HDFS中存在多个角色,且对应的应用场景主要为一次写入、多次读取的场景,所以其读和写的方式有较大不同。存储系统维护和管理——HDFS的系统架构HDFS数据写入流程存储系统维护和管理——HDFS的系统架构业务应用调用HDFSClient提供的API,请求写入文件。HDFSClient联系NameNode,NameNode在元数据中创建文件节点。业务应用调用writeAPI写入文件。HDFSClient收到业务数据后,从NameNode中获取到数据块编号、位置信息后,联系DataNode,并将需要写入数据的DataNodes建立起流水线。HDFS数据写入流程存储系统维护和管理——HDFS的系统架构客户端再通过自有协议将数据写入DataNode1,再由DataNode1复制到DataNode2、DataNode3。写完的数据,将返回确认信息给HDFSClient。所有数据确认完成后,业务应用调用HDFSClient关闭文件。业务应用调用closeflush后,HDFSClient联系NameNode,确认数据写入完成,NameNode持久化元数据。存储系统维护和管理——HDFS的系统架构HDFS数据读取流程存储系统维护和管理——HDFS的系统架构业务应用调用HDFSClient提供的API打开文件。HDFSClient联系NameNode,获取到文件信息(数据块、DataNode位置信息)。业务应用调用readAPI读取文件。HDFSClient根据从NameNode获取到的信息,联系DataNode,获取相应的数据块(Client采用就近原则读取数据)。HDFSClient会与多个DataNode通讯获取数据块。数据读取完成后,业务调用close关闭连接。存储系统维护和管理——HDFS的实际应用HDFS在华为FusionInsight产品的应用存储系统维护和管理——HDFS的实际应用HDFS作为Hadoop的底层文件存储系统,为FusionInsight提供了一个分布式、高容错、可先行扩展的文件系统。HDFS对外仅呈现一个统一的文件系统,并支持回收站机制和副本数的动态设置机制。数据存储以数据块为单位,存储在操作系统的HDFS文件系统上。访问时可通过JAVAAPI、HTTP方式和SHELL方式访问HDFS数据。存储系统维护和管理——HDFS的实际应用HDFS架构的关键设计HA高可靠性元数据持久化机制联邦存储机制数据副本机制数据存储策略多方式访问机制空间回收机制NameNode与DataNode的主从模式统一的问价系统命名空间健壮机制等存储系统维护和管理——HBase的简介HBaseHBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,提供海量数据存储功能,用来解决关系型数据库在处理海量数据时的局限性。HBase适合于存储大表数据(表的规模可以达到数十亿行以及数百万列),井对大表数据的读、写访问可以达到实时级别。HBase利用Hadoop的分布式文件系统HDFS(HadoopDistributedFileSystem)作为其文件存储系统,提供实时读写的分布式数据库系统,同时利用Zookeeper作为协同服务。存储系统维护和管理——HBase的架构HBase的架构图:存储系统维护和管理——HBase的架构Zookeeper为HBase集群中各进程提供分布式协作服务。HRegionServerHRegionServer负责提供表数据读写等服务,是HBase的数据处理和计算单元。HRegionServer一般与HDFS集群的DataNode部署在一起,实现数据的存储功能。各HRegionServer将自己的信息注册到Zookeeper中,主用HMaster据此感知各个HRegionServer的健康状态。ClientClient使用HBase的RPC机制与HMaster、HRegionServer进行通信。Client与HMaster进行管理类通信,并与HRegionServer进行数据操作类通信。存储系统维护和管理——HBase的架构HMaster在HA模式下包含主用Master和备用Master。主用Master负责HBase中HRegionServer的管理,包括表的增删改查、HRegionServer的负载均衡、Region分布调整、Region分裂和分裂后的Region分配,以及HRegionServer失效后的Region迁移等。备用Master指的是当主用Master故障时,备用Master将取代主用Master对外提供服务。故障恢复后,原主用Master降为备用Master。存储系统维护和管理——HBase的应用场景HBase适合具有以下需求的应用存在海量数据(TB、PB),需要高吞吐量。不需要完全拥有传统关系型数据库所具备的ACID特性。需要在海量数据中实现高效的随机读取。需要很好的性能伸缩能力。能够同时处理结构化和非结构化的数据。存储系统维护和管理——HBase华为增强特性HBase在华为FusionInsight产品的应用:在Fusionlnsight产品中HBase与HDFS、Zookeeper等组件皆为Hadoop生态系统的基础组件存储系统维护和管理——HBase华为增强特性HBase在Fusionlnsight产品中与HDFS、Zookeeper等组件皆为基础组件。HBase提供海量数据存储,Hive、Spark等组件也皆有基于HBase做上层分析的应用实践。在Hadoop生态系统中,无论是HDFS,还是HBase,在面对海量文件存储时,在某些场景下会存在一些很难解决的问题。如果把海量小文件直接保存在HDFS中,那么会给NameNode带来极大的压力。由于HBase接口以及内部机制的原因,一些较大的文件也不适合直接保存到HBase中。存储系统维护和管理——HBase华为增强特性HBase文件存储模块(HBaseFilestream,HFS)HBase文件存储模块(HBaseFilestream,简称HFS)是HBase的独立模块,它作为对HBase与HDFS接口的封装,应用在FusionInsightHDS的上层应用,为上层应用提供文件的存储、读取、删除等功能。HFS的出现解决了需要在HDFS中存储海量小文件,同时也要存储一些大文件的混合的场景。简而言之,就是在HBase表中,需要存放大量的小文件(10MB以下),同时又需要存放一些比较大的文件(10MB以上)。存储系统维护和管理——Hive的简介Hive是基于Hadoop的数据仓库软件,可以查询和管理PB级别的分布式数据。Hive具有的特性可直接访问HDFS文件和HBase,支持MapReduce、Tez和Spark等多种计算引擎。通过HQL语言完成数据提取、转换和加载(ETL),以及完成海量结构化数据分析。灵活的数据存储格式,支持JSON、CSV、TEXTFILE、RCFILE、ORCFILE和SEQUENCEFILE等存储格式,并支持自定义扩展。多种客户端连接方式,支持JDBC接口。存储系统维护和管理——Hive与传统仓库对比Hive作为一种数据仓库处理工具,与传统的数据仓库在存储和执行引擎等方面存在一定的差异。Hive与传统数据仓库的具体对比

Hive传统数据仓库存储HDFS,理论上有无限拓展的可能集群存储,存在容量上限,而且伴随容量的增长,计算速度急剧下降,只能适应于数据量比较小的商业应用,对于超大规模数据无能为力执行引擎有MapReduce/Tez/Spark多种引擎可供选择可以选择更加高效的算法来执行查询,也可以进行更多的优化措施来提高速度使用方式HQL(类似SQL)SQL灵活性元数据存储立于数据存储之外,从而解耦合元数据和数据低,数据用途单一存储系统维护和管理——Hive与传统仓库对比Hive与传统数据仓库的具体对比

Hive传统数据仓库分析速度计算依赖于集群规模,易拓展,在大数据量情况下,远远快于普通数据仓库在数据容量较小时非常快速,数据量较大时,急剧下降索引低效,目前还不完善高效易用性需要自行开发应用模型,灵活性较高,但是易用性较低集成一整套成熟的报表解决方案,可以较为方便的进行数据的分析可靠性数据存储在HDFS,可靠性高,容错性高可靠性较低,一次性查询失败需要重新开始。数据容错依赖于硬件Raid依赖环境依赖硬件较低,可适应一般的普通机器依赖于高性能的商业服务器价格开源产品商用比较昂贵存储系统维护和管理——Hive的应用场景Hive是基于静态批处理的Hadoop构建的,Hadoop通常有较高的延迟,并且在作业提交和调度时需要大量的开销。Hive不能在大规模数据集上实现低延迟快速的查询,也不提供实时的查询和基于行级的数据更新操作。Hive查询操作过程严格遵守HadoopMapReduce的作业执行模型。Hive将用户的HQL语句通过解释器转换为MapReduce作业MapReduce作业提交到Hadoop集群上Hadoop监控作业执行过程返回作业执行结果给用户存储系统维护和管理——Hive的应用场景基于Hive的自身特点,Hive在实际中的主要应用海量数据的离线分析(如日志分析,集群状态分析)。大规模的数据挖掘(用户行为分析、兴趣分区、区域展示)。大量数据的汇总(每天/每周用户点击数、流量统计)。……存储系统维护和管理——Hive的实际应用Hive是一种底层封装了Hadoop的数据仓库处理工具,使用类SQL的HQL语言实现数据查询功能,所有Hive的数据都存储在Hadoop兼容的HDFS中。Hive在FusionInsight产品中的应用:存储系统维护和管理——Hive的实际应用Hive在FusionInsight产品中的应用FusionInsightHD中Hive组件在社区版本Hive基础上,加入了众多企业级定制化特性,如Colocation建表、列加密和语法增强等特性。相比于社区版本,FusionInsightHDHive整个产品在高可靠、高容错、可扩展性和性能等方面有巨大提升。为保证Hive服务的高可用性、用户数据的安全及访问服务的可控制,在开源社区的Hive1.1.0版本基础上,FusionInsightHDHive新增基于Kerberos技术的安全认证机制、数据文件加密机制和完善的权限管理的特性。存储系统维护和管理——Hive的实际应用Hive分为HiveServer、MetaStore和WebHcat3个角色。HiveServer将用户提交的HQL语句进行编译,解析成对应的Yarn任务、Spark任务或HDFS操作,从而完成数据的提取、转换和分析。MetaStore提供元数据服务。WebHcat对外提供基于HTTPS协议的元数据访问、DDL查询等服务。存储系统优化——负载均衡负载均衡技术概述负载均衡是分布式系统中的一个优化组合问题,是一个NP-C问题。在分布式系统中,每个节点通过任务分配与再分配来实现系统整体的负载均衡,以便提高系统的整体性能,并在不影响系统正常运行的情况下,减少任务并行执行时间。要提高分布式系统的资源利用率,使系统整体性能达到最高,必须通过高效地资源调度、任务分配与迁移策略来实现集群中各节点的负载均衡。存储系统优化——负载均衡负载均衡算法负载均衡算法的设计目标是将任务合理的分配到分布式系统集群中的各个节点上,使分配到各节点的任务数尽可能均衡,使系统整体达到一种平衡状态。负载均衡算法是决定一个分布式系统性能高低的关键因素。影响系统负载均衡的因素网络拓扑结构;负载均衡的粒度;负载均衡算法(是核心要素)。存储系统优化——负载均衡负载均衡技术是比负载共享更高一层的负载分配策略,将系统负载均衡地分配到各个节点,消除或避免负载不均的问题,使分布式文件系统的性能达到最高。负载均衡技术分类静态负载均衡动态负载均衡存储系统优化——负载均衡静态负载均衡静态负载均衡根据己知的信息进行任务分配,不考虑当前分布式系统的负载状况,因此静态负载均衡又称为状态无关均衡。静态负载均衡的目标是完成任务集的分配调度,使各节点上所有任务尽可能在最短的时间内完成。存储系统优化——负载均衡对于静态负载均衡算法,在分布式系统开始运行前就确定了任务分配策略。例如,任务的到达时间是不确定的,分布式系统会很被动。当任务过多时,由于分布式系统的任务分配策略是既定的,无法改变,因此会导致某些节点的任务数过多,任务等待时间长,而在另外一些节点上却没有任务执行。任务的分配具有很大的不确定性收到任务请求之后,系统会按照制定好的策略来进行任务分配,与当前系统的整体状态信息无关,即任务内容、任务的开始执行时间和集群的实时状态不会影响任务的分配。存储系统优化——负载均衡静态负载均衡算法的优缺点静态负载均衡算法的优点实现逻辑简单,开销小,可以快速地将任务请求分配到各存储节点。静态负载均衡算法的缺点不关注存储节点的实时负载与系统状态的动态变化,决策具有盲目性、准确度低,会造成任务分配不均,系统负载均衡的效果受限。存储系统优化——负载均衡动态负载均衡动态负载均衡与静态负载均衡相比,在灵活性和针对性方面具有优势。在动态负载均衡算法中,分布式系统会实时收集集群中各服务器的运行状态信息,获知各服务器的负载状况,从而动态地、更加合理地分配任务,因此动态负载均衡具有更高的应用价值。各存储服务器节点反馈负载信息的准确性和实时性是动态负载均衡算法有效执行的重要保证。存储系统优化——负载均衡动态负载均衡算法尽可能保证新任务被分配至评价值最高的服务器,从而使任务被快速执行,降低系统响应时间,提高系统整体吞吐量。例如,选择服务器的可用连接数作为评价指标,此时可用连接数较多的服务器相对于可用连接数较少的服务器会优先被分配任务,那么可用连接数最多的服务器的评价值最高,新任务会被分配至该服务器。评价值评价值由评价指标通过一定的方式计算得出,而评价指标的选取需要根据应用场景的不同进行针对性的分析。存储系统优化——负载均衡由于动态负载均衡策略需要及时获取各服务器的负载状态信息,所以会导致増加系统额外的开销。如果合理的控制额外开销,那么可以换来更高的系统性能,因此在实际应用中,动态负载均衡具有很高的使用价值。存储系统优化——数据存储的安全性数据存储面临的问题在大规模的分布式存储系统中,不可避免会出现网络中断、掉电、服务器宕机、硬盘故障等常见的异常问题。存储算法的设计是否能够应付设备或存储集群变化,对系统性能和存储效率的影响非常重要。在大规模的系统中,由于存储节点的急剧增加,节点故障将成为常态而不是例外,而且在任何时间点上都存在发生多个对象存储服务节点不可用的可能性。因此分布式存储系统必须采取有效措施确保存储数据的安全性,从而保障整体系统的可用性。在分布式存储系统中,经常会发生很多并发用户在混合读取数据的同时,也有多个用户在写入数据,这要求系统必须能够及时地同步数据,并确保数据被安全的写入磁盘和采取必要的冗余备份,以保证在遭遇电源故障或其他异常故障时,数据不会发生意外丢失。存储系统优化——数据存储的安全性存储策略在存储系统中提高数据安全性的一个重要方法就是对数据进行冗余备份存储。常用的冗余备份机制完整文件副本文件分块副本独立冗余磁盘阵列(RedundantArrayofIndependentDisk,RAID)……存储系统优化——数据存储的安全性冗余备份机制完整文件副本完整文件副本对重要存储的文件进行副本复制,分散存储到不同的数据节点上,用户只要访问到某个节点,就能访问到该数据,数据可靠性较高。文件分块副本文件分块副本是先对存储文件对象进行分块操作,然后对分块的文件进行冗余备份,这种方式更节约存储空间,但是在单一时刻不允许任意多个节点同时失效,数据可靠性较低。存储系统优化——数据存储的安全性独立冗余磁盘阵列独立冗余磁盘阵列(RedundantArrayofIndependentDisk,RAID)将多块独立的物理硬盘按不同的方式组合起来形成逻辑硬盘,从而提供更强的数据备份能力和更好的存储性能。该技术主要通过数据分割和多通道技术提高I/O吞吐率,通过保存冗余数据和校验信息来实现数据的高可靠性存储。当系统规模较大时,逻辑磁盘中多个磁盘出现错误的概率较大,并且该技术不能在规模较大的系统中提供很好的鲁棒性。存储系统优化——数据存储的安全性为保证数据可靠性,采用数据安全性较高的完全副本冗余存储策略,可有效解决数据存储的安全性问题。基于数据复制冗余技术的完全副本冗余存储策略基本思想:将数据对象创建多个相同的副本,并把得到的多个数据副本分散存储在不同的数据节点上。当部分数据节点失效后,可以通过访问其他有效节点上的数据副本来获取原数据。该技术的主要研究内容:数据组织结构和数据复制策略。存储系统优化——数据存储的安全性基于数据复制冗余技术的完全副本冗余存储策略的研究内容数据组织结构研究用户数据分块和数据分块冗余副本在不同存储节点中的存储管理方式。用户数据分块的复制策略主要研究冗余副本在不同存储节点中的存储数量、数据副本的创建时机和存放位置等问题。存储系统优化——数据组织结构及复制策略数据组织架构目前主流的数据组织结构P2P数据组织方式元数据服务器数据组织方式存储系统优化——数据组织结构及复制策略P2P数据方式P2P数据方式中的所有数据存储是平等的,不存在严格的服务端和客户端区别。当存储数据时,按照分布式哈希表的方式分散存储到不同的数据存储节点中。当用户访问系统时,通过通道方式计算哈希值,即可得到数据存放位置。存储系统优化——数据组织结构及复制策略元数据服务器数据组织方式元数据服务器数据组织结构通常采用统一的数据管理服务器机制,用于存储用户数据分块和冗余存储副本的元数据信息。元数据信息通常包括版本信息、副本的位置、副本与数据之间映射关系和系统的状态、属性等信息。系统通常将元数据信息存储到多个服务器上,以便可靠地支持对数据的集中式管理。当用户访问系统时,首先通过MDS获取数据的存储位置、版本信息,然后从相应位置读取数据块或将数据写入相应的位置。由于元数据服务器数据组织架构要求所有对系统的访问都要通过元数据服务器,当大量用户同时访问系统时,MDS容易成为性能瓶颈,而且存在MDS失效的风险。存储系统优化——数据组织结构及复制策略在目前的云计算环境中,P2P数据组织方式和元数据服务器数据组织方式的应用基于P2P组织结构方式的应用Facebook的Cassandra(分布式存储系统)Amazon公司的Dynamo(分布式存储系统)基于元数据服务器数据组织结构的应用GFS开源的HDFSCeph存储系统优化——数据组织结构及复制策略复制策略数据复制策略的主要研究内容是数据的副本数和放置策略。复制策略的选择与网络状况、存储空间及应用需求等因素有非常紧密的关系,并且策略算法对

温馨提示

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

评论

0/150

提交评论