大数据存储技术.docx要点.pdf

上传人:tbuqq 文档编号:5207792 上传时间:2020-02-21 格式:PDF 页数:13 大小:309.04KB
返回 下载 相关 举报
大数据存储技术.docx要点.pdf_第1页
第1页 / 共13页
大数据存储技术.docx要点.pdf_第2页
第2页 / 共13页
大数据存储技术.docx要点.pdf_第3页
第3页 / 共13页
大数据存储技术.docx要点.pdf_第4页
第4页 / 共13页
大数据存储技术.docx要点.pdf_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《大数据存储技术.docx要点.pdf》由会员分享,可在线阅读,更多相关《大数据存储技术.docx要点.pdf(13页珍藏版)》请在三一文库上搜索。

1、大数据存储技术 刘雷 1 ,杜鹏程 2 ,贺俊铭 3 ,孔庆春 4 ,张莉莉 5 1,2,3,4,5(清华大学 计算机科学与技术系,北京100084) Abstract:Big data analysis compared with the traditional data warehouse applications, with a large amount of data and complex query analysis, etc. Big data storage because of its itself exists 4 v characteristics, the tradit

2、ional storage technology can not meet the needs of large data storage, data resources through the ETL technology was extracted from the source system, and is converted into a standard format, then using NoSQL database for database access management, make full use of the network cloud storage technol

3、ogy enterprise storage cost saving, efficiency advantage, through a distributed network file system to store data information in the Internet network resources, using visual operating interface to satisfy the users data processing requirements at any time. Key words: Data acquisition (ETL), data acc

4、ess (NoSQL), cloud storage, distributed file systems, visualization 摘要:大数据分析相比于传统的数据仓库应用,具有数据量大、查询分析复杂等特点。大数据存储由 于其本身存在的 4V 特征,传统的存储技术不能满足大数据存储的需要,通过ETL 技术数据资源被从源系 统中提取, 并被转换为一个标准的格式,再使用 NoSQL 数据库进行数据库存取管理,充分利用网络云存储 技术节约企业存储成本,提高效率的优势,通过分布式网络文件系统将数据信息存储在整个互联网络资源 中,并用可视化的操作界面随时满足用户的数据处理需求。 关键词 : 数据采集

5、( ETL ) 、数据存取( NoSQL) 、云存储、分布式文件系统、可视化 1引言 在学术界, Nature 早在2008 年就推出了Big Data 专刊 1。计算社区联盟(Computing Community Consortium)在 2008 年发表了报告Big9Data Computing: Creating revolutionary breakthroughs in commerce, science, and society 2 ,阐述了在数据驱动的研究背景下,解决大数据问题所需的技术以及面临的一些挑 战。Science 在 2011 年 2 月推出专刊 Dealing wi

6、th Data 3,主要围绕着科学研究中大数据的问题展开讨 论,说明大数据对于科学研究的重要性。美国一些知名的数据管理领域的专家学者则从专业的研究角度出 发,联合发布了一份白皮书Challenges and Opportunities with Big Data 4。该白皮书从学术的角度出发, 介绍了大数据的产生,分析了大数据的处理流程,并提出大数据所面临的若干挑战。 业界通常用 Volume、Variety、Value 和 Velocity(简称为 “4V ” ,即数据体量巨大、数据类型繁多、价值 密度低和处理速度快)四个特征来显著区分大数据与传统数据。 大数据技术是一个整体,没有统一的解决

7、方案,本文从大数据生命周期过程的角度讨论了ETL 技术、 NoSQL、云存储、分布式系统、数据可视化等5 个部分。 2ETL 技术 随着信息化进程的推进,人们对数据资源整合的需求越来越明显。但面对分散在不同地区、种类繁多 的异构数据库进行数据整合并非易事,要解决冗余、歧义等脏数据的清洗问题,仅靠手工进行不但费时费 力,质量也难以保证;另外,数据的定期更新也存在困难。如何实现业务系统数据整合,是摆在大数据面 前的难题。 ETL数据转换系统为数据整合提供了可靠的解决方案。 ETL是 Extraction-Transformation-Loading的缩写, 中文名称为数据提取、转换和加载。ETL负

8、责将 分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成, 最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。它可以批量完成数据抽取、清 洗、转换、装载等任务,不但满足了人们对种类繁多的异构数据库进行整合的需求,同时可以通过增量方 式进行数据的后期更新。 ETL 体系结构体现了主流ETL产品的主要组成部分5 ,其体系结构如图1: 图 1 ETL 体系结构 ETL 过程中的主要环节就是数据抽取、数据转换和加工、 数据装载 6。为了实现这些功能,各个 ETL 工具一般会进行一些功能上的扩充,例如工作流、调度引擎、规则引擎、脚本支持、统计信息等

9、。 2.1数据抽取 数据抽取是从数据源中抽取数据的过程7。实际应用中,不管数据源采用的是传统关系数据库还是新 兴的 NoSQL 数据库,数据抽取一般有以下几种方式: 2.1.1 全量抽取 全量抽取指的是ETL 在集成端进行数据的初始化时,首先由业务人员或相关的操作人员定义抽取策 略,选定抽取字段和定义规则后,由设计人员进行程序设计;将数据进行处理后,直接读取整个工作表中 的数据作为抽取的内容,类似于数据迁移,是ETL 过程中最简单的步骤,其简单性主要适用于处理一些对 用户非常重要的数据表。 2.1.2 增量抽取 增量抽取主要发生在全量抽取之后。全量抽取之后,对上次抽取过的数据源表中新增的或被修

10、改的数 据进行抽取,称之为增量抽取。增量抽取可以减少对抽取过程中的数据量,提高抽取速度和效率,减少网 络流量,同时,增量抽取的实现,对异构数据源和数据库中数据的变化有个准确的把握。信息抽取不是仅 仅从大量的文献集或数据集中找出适合用户需要的那篇文献或部分内容,而是抽取出真正适合用户需要的 相关信息片段,提供给用户,并找出这些信息与原文献直接的参考对照。 2.2数据转换和加工 从数据源中抽取的数据不一定完全满足目的库的要求,例如数据格式的不一致、数据输入错误、数据 不完整等等,还要对抽取出的数据进行数据转换和加工。 数据转换是真正将源数据库中的数据转换为目标数据的关键步骤,在这个过程中通过对数据

11、的合并汇 总过滤以及重新格式化和再计算等,从而将操作型数据库中的异构数据转换成用户所需要的形式8。数据 的转换和加工可以在ETL 引擎中进行,也可以在数据抽取过程中利用数据库的特性同时进行。 (1)ETL 引擎中的数据转换和加工9 ETL 引擎中一般以组件化的方式实现数据转换。常用的数据转换组件有字段映射、数据过滤、数据清 洗、数据替换、数据计算、数据验证、数据加解密、数据合并、数据拆分等。这些组件如同一条流水线上 的一道道工序,它们是可插拔的,且可以任意组装,各组件之间通过数据总线共享数据。有些ETL 工具还 提供了脚本支持,使得用户可以以一种编程的方式定制数据的转换和加工行为。 (2)在数

12、据库中进行数据加工 关系数据库本身已经提供了强大的SQL、函数来支持数据的加工,如在SQL 查询语句中添加where 条件进行过滤,查询中重命名字段名与目的表进行映射,substr 函数, case条件判断等等。相比在ETL 引 擎中进行数据转换和加工,直接在SQL 语句中进行转换和加工更加简单清晰,性能更高。对于SQL 语句 无法处理的可以交由ETL 引擎处理。 2.3数据装载 将转换和加工后的数据装载到目的库中通常是ETL 过程的最后步骤。装载数据的最佳方法取决于所 执行操作的类型以及需要装入多少数据。当目的库是关系数据库时,一般来说有两种装载方式。 (1) SQL 装载 直接 SQL 语

13、句进行 insert、update、delete操作。 (2)采用批量装载方法 如 bcp、bulk、关系数据库特有的批量装载工具或API 。 大多数情况下会使用第一种方法,因为它们 进行了日志记录并且是可恢复的。但是,批量装载操作易于使用,并且在装入大量数据时效率较高。使用 哪种数据装载方法取决于业务系统的需要。 3NoSQL 技术 10 在大数据时代, web2.0 网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上 无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据 库应付上万次SQL 查询还勉强顶得住,但是应付上万次SQL 写

14、数据请求,硬盘IO 就已经无法承受了。 对于大型的SNS 网站,每天用户产生海量的用户动态,对于关系数据库来说,在庞大的表里面进行 SQL 查询,效率是极其低下乃至不可忍受的。 此外,在基于 web 的架构当中, 数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与 日俱增的时候, 你的数据库却没有办法像web server和 app server那样简单的通过添加更多的硬件和服务节 点来扩展性能和负载能力。对于很多需要提供24 小时不间断服务的网站来说,对数据库系统进行升级和扩 展是非常痛苦的事情,往往需要停机维护和数据迁移,为什么数据库不能通过不断的添加服务器节点来实 现扩展呢?

15、所以上面提到的这些问题和挑战都在催生一种新型数据库技术的诞生,这就是NoSQL 技术。 3.1NoSQL与关系型数据库设计理念比较 关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元 组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接 等操作, 但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对存储, 它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样 就不会局限于固定的结构,可以减少一些时间和空间的开销。 3.2NoSQL技术特点 易扩展性:

16、 NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据 之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。 大数据量,高性能:NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。 这得益于它的无关系性,数据库的结构简单。 一般 MySQL 使用 Query Cache, 每次表的更新Cache就失效, 是一种大粒度的Cache,在针对 web2.0 的交互频繁的应用,Cache 性能不高。而NoSQL 的 Cache 是记录 级的,是一种细粒度的Cache,所以 NoSQL 在这个层面上来说就要性能高很多了。 灵活

17、的数据模型:NoSQL 无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而 在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩 梦。这点在大数据量的web2.0 时代尤其明显。高可用:NoSQL 在不太影响性能的情况,就可以方便的实 现高可用的架构。比如Cassandra ,HBase 模型,通过复制模型也能实现高可用。 3.3CAP原理 分布式数据系统的三要素:一致性 (Consistency) , 可用性 (Availability)、分区容忍性 (Partition tolerance)。 CAP 原理: 在分布式系统中, 这三个要

18、素最多只能同时实现两点,不可能三者兼顾。 对于分布式数据系统, 分区容忍性是基本要求。对于大多数web 应用,牺牲一致性而换取高可用性,是目前多数分布式数据库产 品的方向。 3.4几种主流 NoSQL数据库 而互联网庞大的数据量和极高的峰值访问压力使得以增加内存、CPU 等节点性能的垂直伸缩方案 (Scale-UP)走入死胡同,使用大量廉价的机器组建水平可扩展集群(Scale Out)成为绝大多数互联网公司的必 然选择;廉价的机器失效是正常的,大规模的集群,节点之间的网络临时阻断也是常见的,因此在衡量一 致性、可用性和分区容忍性时,往往倾向先满足后两者,再用其他方法满足最终的一致性。在衡量 C

19、AP 时, Bigtable 选择了 CA ,用 GFS 来弥补P,Dynamo 选择了 AP,C 弱化为最终一致性(通过Quorum 或者 read-your-write 机制) 。 3.4.1 BigTable11 (1)BigTable 简介 Bigtable 是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普 通服务器上的PB 级的数据。 Google 的很多项目使用Bigtable 存储数据,包括Web 索引、 Google Earth、 Google Finance 等。 (2)数据模型 Bigtable 是一个稀疏的、分布式的、持久化存储的多维度排序

20、Map。Map 的索引是行关键字、列关键 字以及时间戳; Map 中的每个 value 都是一个未经解析的byte 数组。 (row:string, column:string,time:int64 )string 。一个存储Web 网页的例子的表的片断: 行名: ”n.www” contents 列族:存放的是网页的内容 anchor列族:存放引用该网页的锚链接文本。 “anchor:”列表示被 引用 “anchhor:my.look.ca”列表示被 my.look.ca 引用 ( ”n.www”, ” anchor: my.look.ca”,t8)-”CNN.com ” (3)技术要点

21、基础: GFS, Chubby, SSTable。 BigTable 使用 Google 的分布式文件系统(GFS)存储日志文件和数据文件 Chubby 是一个高可用的、序列化的分布式锁服务组件 BigTable 内部存储数据的文件是Google SSTable 格式的。 元数据组织: chubby-metadata-tablet。 元数据与数据都保存在Google FS 中,客户端通过Chubby 服务获得表格元数据的位置 数据维护与访问:master server 将每个tablet 的管理责任分配给各个tablet server,tablet 的分 布信息都保存在元数据中,所以客户端无须

22、通过master 来访问数据, 只需要直接跟tablet server 通信。 Log-structured 数据组织:写操作不直接修改原有的数据,而只是将一条记录添加到commit log 的末尾,读操作需要从log 中 merge 出当前的数据版本。具体实现:SSTable, Memtable 。 (Memtable 即内存表:将新数据或常用数据保存在内存表,可以减少磁盘IO 访问) (4)特点 适合大规模海量数据,PB 级数据; 分布式、并发数据处理,效率极高; 易于扩展,支持动态伸缩,适用于廉价设备; 适合于读操作,不适合写操作; 不适用于传统关系数据库。 3.4.2Dynamo12

23、(1)Dynamo 简介 Dynamo 最初是Amazon 所使用的一个私有的分布式存储系统。 (2)设计要点 P2P 的架构:这区别于Google FS 的 Single Master 架构,无须一个中心服务器来记录系统的元数据。 Performance(性能) , Availability (可用性) , Durability (数据持久性)三者的折衷,可以根据应用的需求 自由调整三者比例 (3)技术要点 将所有主键的哈希数值空间组成一个首位相接的环状序列,对于每台机器, 随机赋予一个哈希值,不同 的机器就会组成一个环状序列中的不同节点,而该机器就负责存储落在一段哈希空间内的数据。数据定位

24、 使用一致性哈希;对于一个数据,首先计算其的哈希值,根据其所落在的某个区段,顺时钟进行查找,找 到第一台机,该机器就负责存储在数据的,对应的存取操作及冗余备份等操作也有其负责,以此来实现数 据在不同机器之间的动态分配。 对于一个环状节点比如M 个节点,比如一份数据需要保持N 个备份,则该数据落在某个哈希区间内 发现的第一个节点负责后续对应的N-1 个节点的数据备份 (注意 M=N ) , Vector lock ,允许数据的多个备 份存在多个版本,提高写操作的可用性(用弱一致性来换取高的可用性)分布式存储系统对于某个数据保 存多个备份,数据写入要尽量保证备份数据同时获得更新Dynamo 采取数

25、据最终一致性,在一定的时间窗口 中,对数据的更新会传播到所有备份中,但是在时间窗口内,如果有客户读取到旧的数据,通过向量时钟 (Vector Clock) 。 容错: Sloppy Quorum, hinted handoff, Merkle tree ,Sloppy Quorum马虎仲裁,并非采用严格 的数据一致性检查,用于实现最终一致性。hinted handoff,节点故障会恢复时,可动态维护系统可用性, 使系统的写入成功大大提升。使用 Merkle tree 为数据建立索引, 只要任意数据有变动,都将快速反馈出来。 网络互联 : Gossip-based membership prot

26、ocol ,一种通讯协议,目标是让节点与节点之间通信,实现去中心 化。 (4)特点 高可用:设计上天然没有单点,每个实例由一组节点组成,从应用的角度看,实例提供IO 能力。一 个实例上的节点可能位于不同的数据中心内, 这样一个数据中心出问题也不会导致数据丢失。总是可写: hinted handoff 确保在系统节点出现故障或节点恢复时,能灵活处理 可根据应用类型优化可用性、容错性和高效性配置去中心化,人工管理工作少可扩展性较差:由于增 加机器需要给机器分配DHT( 分布式 hash table)算法所需的编号,操作复杂度较高,且每台机器存储了整个 集群的机器信息及数据文件的Merkle Tre

27、e 信息,机器最大规模只能到几千台。 4大数据基础设施-分布式文件系统 分布式文件系统(DFS,Distributed File System)使用户更加容易访问和管理物理上跨网络分布的文 件。DFS 为文件系统提供了单个访问点和一个逻辑树结构,通过DFS,用户在访问文件时不需要知道它们 的实际物理位置,即分布在多个服务器上的文件在用户面前就如同在网络的同一个位置。 4.1成熟架构 早期比较成熟的网络存储结构大致分为三种:直连式存储(DAS:Direct Attached Storage) 、网络连接 式存储( NAS:Network Attached Storage)和存储网络( SAN :

28、Storage Area Network) 。 在直连式存储DAS 中,主机与主机之间、主机与磁盘之间采用SCSI 总线通道或FC 通道、 IDE 接口实现互连,将数据存储扩展到了多台主机,多个磁盘。随着存储容量的增加,SCSI 通道将 会成为 IO 瓶颈。 网络连接式存储NAS 一种连接到局域网的基于IP 的文件系统共享设备。NAS 系统拥有一个专 用的服务器,安装优化的文件系统和瘦操作系统,该OS 专门服务于文件请求。一个NAS 设备 是专用、高性能、高速、单纯用途的文件服务和存储系统。 存储网络SAN 是指存储设备相互连接且与一台服务器或一个服务器群相连的网络。一个SAN 网络由负责网络

29、连接的通信结构、负责组织连接的管理层、存储部件以及计算机系统构成。与 NAS 偏重文件共享不同,SAN 主要是提供高速信息存储。网络存储通信中使用到的相关技术和 协议包括 SCSI、RAID 、iSCSI 以及光纤信道。 随着全球非结构化数据快速增长,针对结构化数据设计的这些传统存储结构在性能、可扩展性等方面 都难以满足要求,进而出现了集群存储、集群并行存储、P2P存储、面向对象存储等多种存储结构。 集群存储, 简而言之就是将若干个普通性能的存储系统联合起来来组成“ 存储的集群 ” 。集群存储 采用开放式的架构,具有很高扩展性,一般包括存储节点、前端网络、后端网络三个构成元素, 每个元素都可以

30、非常容易地进行扩展和升级而不用改变集群存储的架构。集群存储通过分布式 操作系统的作用,会在前端和后端都实现负载均衡。 集群并行存储采用了分布式文件系统混合并行文件系统。并行存储容许客户端和存储直接打交 道,这样可以极大地提高性能。集群并行存储提高了并行或分区I/O 的整体性能,特别是读取操 作密集型以及大型文件的访问。获取更大的命名空间或可编址的阵列。通过在相互独立的存储 设备上复制数据来提高可用性。通过廉价的集群存储系统来大幅降低成本,并解决扩展性方面 的难题。集群存储多在大型数据中心或高性能计算中心使用。 P2P存储用 P2P 的方式在广域网中构建大规模分布式存储系统。从体系结构来看, 系

31、统采用无中 心结构,结点之间对等,通过互相合作来完成用户任务。用户通过该平台自主寻找其它结点进 行数据备份和存储空间交换,为用户构建了大规模存储交换的系统平台。P2P 存储用于构建更大 规模的分布式存储系统,可以跨多个大型数据中心或高性能计算中心使用。 面向对象存储是SAN 和 NAS 的有机结合,是一种存储系统的发展趋势。在面向对象存储中, 文件系统中的用户组件部分基本与传统文件系统相同,而将文件系统中的存储组件部分下移到 智能存储设备上,于是用户对于存储设备的访问接口由传统的块接口变为对象接口。 4.2典型系统 基于多种分布式文件系统的研究成果,人们对体系结构的认识不断深入,分布式文件系统

32、在体系结构、 系统规模、性能、可扩展性、可用性等方面经历了较大的变化。下面按时间顺序介绍几个分布式文件系统 的典型应用。 1985 年出现的 NFS 受到了广泛的关注和认可,被移植到了几乎所有主流的操作系统,成为分布式文 件系统事实上的标准。NFS 利用 Unix 系统中的虚拟文件系统(VFS-Virtual File System )机制,将客户机对 文件系统的请求,通过规范的文件访问协议和远程过程调用,转发到服务器端进行处理;服务器端在VFS 之上,通过本地文件系统完成文件的处理,实现了全局的分布式文件系统。Sun 公司公开了NFS 的实施规 范,互联网工程任务组(The Internet

33、 Engineering Task Force,IETF)将其列为征求意见稿(RFC-Request for Comments) ,这很大程度上促使NFS 的很多设计实现方法成为标准,也促进了NFS 的流行。 General Parallel File System (GPFS)13 是目前应用范围较广的一个系统,在系统设计中采用了多项 当时较为先进的技术。GPFS 的磁盘数据结构可以支持大容量的文件系统和大文件,通过采用分片存储、较 大的文件系统块、数据预读等方法获得了较高的数据吞吐率;采用扩展哈希(extensible hashing)技术来支 持含有大量文件和子目录的大目录,提高文件的查

34、找和检索效率。GPFS 采用不同粒度的分布式锁解决系统 中的并发访问和数据同步问题:字节范围的锁用于用户数据的同步,动态选择元数据节点(metanode)进 行元数据的集中管理;具有集中式线索的分布式锁管理整个系统中空间分配等。GPFS 采用日志技术对系统 进行在线灾难恢复。每个节点都有各自独立的日志,且单个节点失效时,系统中的其他节点可以代替失效 节点检查文件系统日志,进行元数据恢复操作。GPFS 还有效地克服了系统中任意单个节点的失效、网络通 信故障、磁盘失效等异常事件。此外,GPFS 支持在线动态添加、减少存储设备,然后在线重新平衡系统中 的数据。这些特性在需要连续作业的高端应用中尤为重

35、要。 IBM 公司在 GPFS的基础之上发展进化来的Storage Tank14以及基于 Storage Tank的 TotalStorage SAN File System15 又将分布式文件系统的设计理念和系统架构向前推进了一步。它们除了具有一般的分布式文 件系统的特性之外,采用SAN 作为整个文件系统的数据存储和传输路径。它们采用带外(out-of-band)结 构,将文件系统元数据在高速以太网上传输,由专门的元数据服务器来处理和存储。文件系统元数据和文 件数据的分离管理和存储,可以更好地利用各自存储设备和传输网络的特性,提高系统的性能,有效降低 系统的成本。 Storage Tank采

36、用积极的缓存策略,尽量在客户端缓存文件元数据和数据。即使打开的文件被 关闭,都可以在下次使用时利用已经缓存的文件信息,整个文件系统由管理员按照目录结构划分成多个文 件集( fileset) 。每一个文件集都是一个相对独立的整体,可以进行独立的元数据处理和进行文件系统备份 等。不同的文件集可以分配到不同的元数据服务器处理,形成元数据服务器机群,提供系统的扩展性、性 能、可用性等。在TotalStorage 中,块虚拟层将整个SAN 的存储进行统一的虚拟管理,为文件系统提供统 一的存储空间。这样的分层结构有利于简化文件系统的设计和实现。同时,它们的客户端支持多种操作系 统,是一个支持异构环境的分布

37、式文件系统。在SAN File System ,采用了基于策略的文件数据位置选择方 法,能有效地利用系统的资源、提高性能、降低成本。 GFS(Google File System)系统集群由一个master 节点和大量的chunkserver 结点构成,并被许多客 户( Client )访问。 GFS 把文件分成64MB 的块,减少了元数据的大小,使Master 节点能够非常方便地将 元数据放置在内存中以提升访问效率。数据块分布在集群的机器上,使用Linux 的文件系统存放,同时每 块文件至少有3 份以上的冗余。考虑到文件很少被删减或者覆盖,文件操作以添加为主,充分考虑了硬盘 线性吞吐量大和随

38、机读点慢的特点。中心是一个Master 节点,根据文件索引,找寻文件块。系统保证每个 Master 都会有相应的复制品,以便于在 Master 节点出现问题时进行切换。在 Chunk 层,GFS 将节点失败视 为常态,能够非常好地处理Chunk 节点失效的问题。对于那些稍旧的文件,可以通过对它进行压缩,来节 省硬盘空间,且压缩率惊人,有时甚至可以接近90%。为了保证大规模数据的高速并行处理,引入了 MapReduce16编程模型,同时,由于MapReduce 将很多繁琐的细节隐藏起来,也极大地简化了程序员的 开发工作。 Yahoo也推出了基于MapReduce的开源版本Hadoop,目前 Ha

39、doop 在业界已经被大规模使用。HDFS (Hadoop Distributed File System )有着高容错性的特点,并且设计用来部署在低廉的硬件上,实现了异构 软硬件平台间的可移植性。为了尽量减小全局的带宽消耗读延迟,HDFS 尝试返回给一个读操作离它最近 的副本。硬件故障是常态,而不是异常,自动地维护数据的多份复制,并且在任务失败后能自动地重新部 署计算任务,实现了故障的检测和自动快速恢复。HDFS 放宽了可移植操作系统接口(POSIX :Portable Operating System Interface)的要求,这样可以流的形式访问文件系统中的数据,实现了以流的形式访问写

40、入 的大型文件的目的,重点是在数据吞吐量,而不是数据访问的反应时间。HDFS 提供了接口,来让程序将 自己移动到离数据存储更近的位置,消除了网络的拥堵,提高了系统的整体吞吐量。HDFS 的命名空间是 由名字节点来存储的。名字节点使用叫做EditLog 的事务日志来持久记录每一个对文件系统元数据的改变。 名字节点在本地文件系统中用一个文件来存储这个EditLog 。整个文件系统命名空间,包括文件块的映射表 和文件系统的配置都存在一个叫FsImage 的文件中,FsImage 也存放在名字节点的本地文件系统中。FsImage 和 Editlog 是 HDFS 的核心数据结构。 5大数据基础设施-云

41、存储 面对大数据的海量异构数据,传统存储技术面临建设成本高、运维复杂、扩展性有限等问题,成本低 廉、提供高可扩展性的云存储技术日益得到关注。 5.1定义 由于业内没有统一的标准,各厂商的技术发展路线也不尽相同,因此相对于云计算,云存储概念存在 更多的多义和模糊现象17 。结合云存储技术发展背景及主流厂商的技术方向,可以得出如下定义:云存 储是通过集群应用、网格技术或分布式文件系统等,将网络中大量各种不同的存储设备通过应用软件集合 起来协同工作,共同对外提供数据存储和业务访问功能的一个系统18。 5.2云存储架构 云存储是由一个网络设备、存储设备、服务器、应用软件、公用访问接口、接入网和客户端程

42、序等组 成的复杂系统。以存储设备为核心,通过应用软件来对外提供数据存储和业务访问服务。云存储的架构如 图 2 所示: 图 2 云存储架构 存储层:存储设备数量庞大且分布在不同地域,彼此通过广域网、 互联网或光纤通道网络连接在一起。 在存储设备之上是一个统一存储设备管理系统,实现存储设备的逻辑虚拟化管理、多链路冗余管理, 以及硬件设备的状态监控和故障维护。 基础管理层:通过集群、分布式文件系统和网格计算等技术,实现云存储设备之间的协同工作,使多 个的存储设备可以对外提供同一种服务,并提供更大更强更好的数据访问性能。数据加密技术保证 云存储中的数据不会被未授权的用户访问,数据备份和容灾技术可以保证

43、云存储中的数据不会丢失, 保证云存储自身的安全和稳定。 应用接口层:不同的云存储运营商根据业务类型,开发不同的服务接口,提供不同的服务。例如视频 监控、视频点播应用平台、网络硬盘,远程数据备份应用等。 访问层:授权用户可以通过标准的公用应用接口来登录云存储系统,享受云存储服务19 。 5.3云存储中的数据缩减技术 大数据时代云存储技术的关键技术主要有云存储中的存储虚拟化、分布式存储技术、数据备份、数据 缩减技术、内容分发网络技术、数据迁移、数据容错技术等技术20 ,而其中云存储的数据缩减技术,能 够满足海量信息爆炸式增长趋势,在一定程度上节约企业存储成本,提高效率, 从而成为人们关注的重点。

44、5.3.1 自动精简配置 传统配置技术为了避免重新配置可能造成的业务中断,常常会过度配置容量。在这种情况下,一旦存 储分配给某个应用,就不可能重新分配给另一个应用,由此造成了已分配的容量没有得到充分利用,造成 资源极大浪费。自动精简配置技术利用虚拟化方法减少物理存储空间的分配,最大限度提升存储空间利用 率,其核心原理是“ 欺骗 ” 操作系统,让操作系统认为存储设备中有很大的存储空间,而实际的物理存储空 间则没有那么大。 自动精简配置技术的应用会减少已分配但未使用的存储容量的浪费,在分配存储空间时, 需要多少存储空间系统则按需分配。随着数据存储的信息量越来越多,实际存储空间也可以及时扩展,无 需

45、用户手动处理 21 。 5.3.2 自动存储分层 自动存储分层( AST )技术是存储上减少数据的另外一种机制,主要用来帮助数据中心最大程度地降 低成本和复杂性。在过去,进行数据移动主要依靠手工操作,由管理员来判断这个卷的数据访问压力或大 或小,迁移的时候也只能一个整卷一起迁移。自动存储分层技术的特点则是其分层的自动化和智能化。利 用自动存储分层技术一个磁盘阵列能够把活动数据保留在快速、昂贵的存储上,把不活跃的数据迁移到廉 价的低速层上,使用户数据保留在合适的存储层级,减少了存储需求的总量,降低了成本,提升了性能。 随着固态存储在当前磁盘阵列中的采用以及云存储的来临,自动存储分层已经成为大数据

46、时代补充内部部 署的存储的主要方式。 5.3.3 重复数据删除 物理存储设备在使用一段时间后必然会出现大量重复的数据。“ 重复删除 ” 技术( De-duplication )作为 一种数据缩减技术可对存储容量进行优化。它通过删除数据集中重复的数据,只保留其中一份,从而消除 冗余数据。使用De-dupe 技术可以将数据缩减到原来的1/20-1/50。由于大幅度减少了对物理存储空间的信 息量,从而达到减少传输过程中的网络带宽、节约设备成本、降低能耗的目的。重复数据删除技术原理 De-dupe 按照消重的粒度可以分为文件级和数据块级。可以同时使用种以上的hash 算法计算数据指纹, 以获得非常小的

47、数据碰撞发生概率。具有相同指纹的数据块即可认为是相同的数据块,存储系统中仅需要 保留一份。这样,一个物理文件在存储系统中就只对应一个逻辑表示。 5.3.4 数据压缩 数据压缩技术是提高数据存储效率最古老最有效的方法之一,可以显著降低待处理和存储的数据量, 一般情况下可实现2:13:1 的压缩,对于随机数据效果更好,像数据库。其原理就是将收到的数据通过存 储算法存储到更小的空间中去。在线压缩(RACE )是最新研发的数据压缩技术,与传统压缩技术不同。 对 RACE 技术来说,不仅能在数据首次写入时进行压缩,以帮助系统控制大量数据在主存中杂乱无章地存 储的情形。 还可以在数据写入到存储系统前压缩数

48、据,进一步提高存储系统中的磁盘和缓存的性能和效率。 数据压缩中使用的LZS 算法基于LZ77 实现,主要由部分构成,滑窗(Sliding Window )和自适应编码 (Adaptive Coding ) 。压缩处理时,在滑窗中查找与待处理数据相同的块,并用该块在滑窗中的偏移值及块 长度替代待处理数据,从而实现压缩编码。如果滑窗中没有与待处理数据块相同的字段,或偏移值及长度 数据超过被替代数据块的长度,则不进行替代处理。LZS 算法的实现非常简洁,处理比较简单,能够适应 各种高速应用。 图 3 LZ777 算法示意图 6数据可视化 图灵奖得主Jim Gray 在 2007 年提出了“ 以数据为

49、基础的科学研究第四范式” 的概念 22, 研究方 法已经从“ 我应该设计个什么样的实验来验证这个假设?” 逐渐发展为“ 从这些已知的数据中我能够看到 什么相关性 ?” 数据可视化是获取大数据Value 的有效手段。 6.1定义与目的 数据可视化为人们提供了从阅读局部信息到纵观全局信息、从表面到本质和从内容到结构的有力工 具。 其演化过程是从文本到树和图, 再到多媒体 , 以便最大限度地利用人们的多通道和分布式认知功能以 及形象思维功能 , 达到意会 23 。 数据可视化致力于通过交互可视界面来进行分析、推理和决策。人们通过使用可视分析技术和工具, 从海量、动态、不确定甚至包含相互冲突的数据中整合信息,获取对复杂情景的更深层的理解。可视分析 技术允许人们对已有预测进行检验,对未知信息进行探索,提供快速、可检验和易理解的评估24 ,以及 提供更有效的交流手段。 数据可视化的开发和大部分项目开发一样,也是根据需求来根据数据维度或属性进行筛选,根据目的 和用户群选用表现方式25。 同一份数据可以可视化成多种看起来截然不同的形式。 有的可视化目标是为了观测、跟踪数据,所以就要强调实时性、变化、运算能力,可能

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1