大数据存储 1.1.1 大数据的特征 随着数字化浪潮袭来,特别是5G、数据中心、工业互联网等基础建设的推动下,数据面临着爆发式增长,同时海量数据存储与整理也成为了各个企业急需解决的问题。 自磁盘系统问世以来,数据存储已经走过了近百年的历程。数据存储作为大数据的核心环节之一,可以理解为方便对既定数据内容进行归档、整理和共享的过程。 以往的数据存储,主要是基于关系型数据库,而关系型数据库,在面对大数据的时候,存储设备所能承受的数据量是有上限的,当数据规模达到一定的量级之后,数据检索的速度就会急剧下降,对于后续的数据处理来说,也带来了困难。 1. 分布式存储分布式存储是相对于集中式存储来说的。分布式存储最早是由谷歌提出的,其目的是通过廉价的服务器来提供使用与大规模,高并发场景下的Web访问问题。 分布式存储有块存储、文件存储和对象存储。(1)块存储块存储就好比硬盘一样,直接挂载到主机,一般用于主机的直接存储空间和数据库应用的存储。 (2)文件存储文件存储(NAS)相对块存储来说更能兼顾多个应用和更多用户访问,同时提供方便的数据共享手段。 (3)对象存储对象存储是一种新的网络存储架构。存储标准化组织SINA早在2004年就给出了对象存储的定义,但早期多出现在超大规模系统中,所以并不为大众所熟知,相关产品一直也不温不火。一直到云计算和大数据的概念全民强推,才慢慢进入公众视野。 2. NoSQL数据库传统的关系型数据库采用关系模型作为数据的组织方式,但是随着对数据存储要求的不断提高,在大数据存储中,之前常用的关系型数据库已经无法满足Web 2.0的需求。主要表现为:无法满足海量数据的管理需求、无法满足数据高并发的需求、高可扩展性和高可用性的功能太低。在这种情况下,NoSQL数据库应运而生。 3. 云数据库云数据库是指被优化或部署到一个虚拟计算环境中的数据库,是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置,让软、硬件升级变得更加容易。因此,云数据库具有高可扩展性、高可用性、采用多租形式和支持资源有效分发等特点,可以实现按需付费和按需扩展。 4.2 Hadoop架构Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(Hadoop distributed file system,HDFS)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构。 Hadoop 主要包含 HDFS 和 MapReduce 两大组件,HDFS 负责分布储存数据,MapReduce 负责对数据进行映射、规约处理,并汇总处理结果。 Hadoop的源头是Apache Nutch,该项目始于2002年,是Apache Lucene的子项目之一。 Hadoop1.0是最早的版本,只是在google上发表的三篇论文转变过来的。所以Hadoop 1.0在开发过程当中存在诸多的缺陷,Hadoop 1.0主要是有HDFS(分布式系统)和一个分布式计算框架(MapReduce)组成的。Hadoop 2.0增加了HDFS HA机制,解决了hdfs1.0中的单点故障问题,通过HA进行standbynamenode的热备份。 4.2.3 Hadoop生态组件HDFS(Hadoop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件;其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。 在一个典型的HDFS集群中,有一个NameNode、一个SecondaryNameNode和至少一个DataNode,而HDFS客户端数量并没有限制。所有的数据均存放在运行DataNode进程的节点的块(block)里。 使用Hadoop来实现分布式存储。 2. MapReduce在Hadoop的体系结构中,MapReduce是一个简单、易用的软件框架,基于MapReduce可以将任务分发到由上千台商用机器组成的集群上,并以一种可靠容错的方式并行处理大量的数据集,实现Hadoop的并行任务处理功能。 3. HBase在大数据平台框架当中,Hadoop凭借相对全面且成熟的技术体系,成为企业的首选。大数据存储是大数据处理的底层支持,只有实现稳定灵活的存储,下一步才能进行高效的数据处理。而企业在搭建大数据存储系统时,基于Hadoop的数据存储则主要通过HBase来实现。值得注意的是:在Hadoop中HBase是一个分布式数据库,而HDFS是一个分布式文件系统。 4. ZooKeeperZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件,是一个典型的分布式数据一致性解决方案 分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。 5. YARNApache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop?资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。 6. SparkApache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一。Apache Spark扩展了MapReduce模型,以有效地将其用于多种计算,包括流处理和交互式查询。Apache Spark的主要功能是内存中的群集计算,可以提高应用程序的处理速度。Apache?Spark的快速成功得益于它的强大功能和易于使用,Apache?Spark生态系统中的包和框架日益丰富,使得Spark能够进行高级数据分析。相比于传统的MapReduce大数据分析,Spark效率更高、运行时速度更快。 Flink核心是一个流式的数据流执行引擎,并且能够基于同一个Flink运行时,提供支持流处理和批处理两种类型应用。其针对数据流的分布式计算提供了数据分布,数据通信及容错机制等功能。 4.3 NoSQL数据库和数据库管理系统(RDBMS)相比,NoSQL不使用SQL作为查询语言,其存储也可以不需要固定的表模式,用户操作NoSQL时通常会避免使用RDBMS的JION操作。NoSQL数据库一般都具备水平可扩展的特性,并且可以支持超大规模数据存储,灵活的数据模型也可以很好地支持Web 2.0应用,此外还具有强大的横向扩展能力。目前NoSQL数据库在以下的这几种情况下比较适用: (1)数据模型比较简单; (2)需要灵活性更强的IT系统; (3)对数据库性能要求较高; (4)不需要高度的数据一致性; (5)对于给定Key,比较容易映射复杂值的环境。但是,在某些特定场景下 NoSQL 仍然不是最佳人选,比如一些绝对要有事务与安全指标的场景。 1. 列式数据库列族数据库一般用列族数据模型,数据库由多个行构成,每行数据包含多个列族,不同的行可以具有不同数量的列族,属于同一个列族的数据会被存放在一起。 2. 键值数据库键值存储即Key-Value存储,简称KV存储,它是NoSQL存储的一种方式。键值存储的数据按照键值对的形式进行组织,索引和存储。键值存储非常适合不涉及过多数据关系业务关系的业务数据,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能。 Redis在Windows下的运行界面。 3. 文档型数据库文档型数据库与键值数据库相类似,它们的差别在于处理数据的方式:在键值数据库中,数据是对数据库不透明的;而面向文档的数据库系统依赖于文件的内部结构,它获取元数据以用于数据库引擎进行更深层次的优化。 要在关系数据库中表示产品,建模者可以使用通用的属性和额外的表来为每个产品子类型存储属性。文档数据库却可以更为简单地处理这种情况。文档型数据库的设计模式如下:{ name: A, children: [ {name: B, children: [{name: D}]}, {name: C} ]} MongoDB是一个跨平台,面向文档的数据库。它可以应用于各种规模的企业、各个行业以及各类应用程序的开源数据库。 MongoDB在Windows下的运行界面。 4. 图形数据库图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。不过值得注意的是:图形数据库的基本含义是以“图”这种数据结构存储和查询数据,而不是存储图片的数据库。 图数据库顾名思义,就是一种存储图形关系的数据库,而图模型是图数据库中的重要概念。 Neo4j是一个高性能的,基于NoSQL的图形数据库,它将结构化数据存储在网络上而不是表中。 4.4 数据仓库数据仓库是决策支持系统和联机分析应用数据源的结构化数据环境,它研究和解决从数据库中获取信息的问题,并为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。 数据仓库(Data Warehouse) 简称DW,顾名思义,数据仓库是一个很大的数据存储集合,出于企业的分析性报告和决策支持目的而创建,并对多样的业务数据进行筛选与整合。通常,数据定期从事务系统、关系数据库和其他来源流入数据仓库。 数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extract,转换化Transfer,装载Load)的过程,ETL是数据仓库的流水线,也可以认为是数据仓库的血液,它维系着数据仓库中数据的新陈代谢,而数据仓库日常的管理和维护工作的大部分精力就是保持ETL的正常和稳定。 数据仓库技术ETL ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取、转换、加载至目的端的过程。在数据仓库的语境下,ETL基本上就是数据采集的代表,包括数据的提取(Extract)、转换(Transform)和加载(Load)。在转换的过程中,需要针对具体的业务场景对数据进行治理,例如对行非法数据进行监测与过滤、对数据进行格式转换和规范化、对数据进行替换以及保证数据完整性等。 1.4 小结(1)相对于传统的数据分析,大数据是海量数据的集合,它以采集、整理、存储、挖掘、共享、分析、应用、清洗为核心,正广泛的应用在了军事、金融、环境保护、通讯等各个行业中。(2)随着对大数据认识的不断加深,人们认为大数据一般具有四个特征:数据量大、数据类型繁多、数据产生速度快以及数据价值密度低。(3)当今时代,数据与人们的日常生活密切相关,衣、食、住、行等相关领域的海量数据持续迸发,而海量数据的产生为大数据应用提供了丰富的基础资源和场景。(4)当前,数据已经渗透到各个行业和业务职能领域,数据的与日俱增昭示着大数据时代已经来临,对数据的科学运用将成为国家竞争力的重要组成部分。
广东省深圳市2021-2022学年高二下学期期末考试化学试题(含答案).docx
外研版英语三年级下册 Unit 3 Yummy food Period 2 Speed up 课件.ppt
外研版英语三年级下册 Unit 2 Know your body Period 4 Hit it big 课件.ppt
原创力文档创建于2008年,本站为文档C2C交易模式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中间服务平台,本站所有文档下载所得的收益归上传人所有。原创力文档是网络服务平台方,若您的权利被侵害,请发链接和相关诉求至 电线) ,上传者