大数据存储技术.doc_第1页
大数据存储技术.doc_第2页
大数据存储技术.doc_第3页
大数据存储技术.doc_第4页
大数据存储技术.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

大数据存储技术刘雷1,杜鹏程2,贺俊铭3,孔庆春4,张莉莉51,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 traditional 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 technology 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 access (NoSQL), cloud storage, distributed file systems, visualization摘 要: 大数据分析相比于传统的数据仓库应用,具有数据量大、查询分析复杂等特点。大数据存储由于其本身存在的4V特征,传统的存储技术不能满足大数据存储的需要,通过ETL技术数据资源被从源系统中提取,并被转换为一个标准的格式,再使用NoSQL数据库进行数据库存取管理,充分利用网络云存储技术节约企业存储成本,提高效率的优势,通过分布式网络文件系统将数据信息存储在整个互联网络资源中,并用可视化的操作界面随时满足用户的数据处理需求。关键词: 数据采集(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 with Data3,主要围绕着科学研究中大数据的问题展开讨论,说明大数据对于科学研究的重要性。美国一些知名的数据管理领域的专家学者则从专业的研究角度出发,联合发布了一份白皮书Challenges and Opportunities with Big Data4。该白皮书从学术的角度出发,介绍了大数据的产生,分析了大数据的处理流程,并提出大数据所面临的若干挑战。 业界通常用Volume、Variety、Value和Velocity(简称为“4V”,即数据体量巨大、数据类型繁多、价值密度低和处理速度快)四个特征来显著区分大数据与传统数据。大数据技术是一个整体,没有统一的解决方案,本文从大数据生命周期过程的角度讨论了ETL技术、NoSQL、云存储、分布式系统、数据可视化等5个部分。2 ETL技术 随着信息化进程的推进,人们对数据资源整合的需求越来越明显。但面对分散在不同地区、种类繁多的异构数据库进行数据整合并非易事,要解决冗余、歧义等脏数据的清洗问题,仅靠手工进行不但费时费力,质量也难以保证;另外,数据的定期更新也存在困难。如何实现业务系统数据整合,是摆在大数据面前的难题。ETL数据转换系统为数据整合提供了可靠的解决方案。 ETL是Extraction-Transformation-Loading的缩写,中文名称为数据提取、转换和加载。ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。它可以批量完成数据抽取、清洗、转换、装载等任务,不但满足了人们对种类繁多的异构数据库进行整合的需求,同时可以通过增量方式进行数据的后期更新。 ETL体系结构体现了主流ETL产品的主要组成部分5,其体系结构如图1:图1 ETL体系结构 ETL过程中的主要环节就是数据抽取、数据转换和加工、数据装载6。为了实现这些功能,各个ETL工具一般会进行一些功能上的扩充,例如工作流、调度引擎、规则引擎、脚本支持、统计信息等。2.1 数据抽取 数据抽取是从数据源中抽取数据的过程7。实际应用中,不管数据源采用的是传统关系数据库还是新兴的NoSQL数据库,数据抽取一般有以下几种方式: 2.1.1 全量抽取 全量抽取指的是ETL在集成端进行数据的初始化时,首先由业务人员或相关的操作人员定义抽取策略,选定抽取字段和定义规则后,由设计人员进行程序设计;将数据进行处理后,直接读取整个工作表中的数据作为抽取的内容,类似于数据迁移,是ETL过程中最简单的步骤,其简单性主要适用于处理一些对用户非常重要的数据表。2.1.2 增量抽取 增量抽取主要发生在全量抽取之后。全量抽取之后,对上次抽取过的数据源表中新增的或被修改的数据进行抽取,称之为增量抽取。增量抽取可以减少对抽取过程中的数据量,提高抽取速度和效率,减少网络流量,同时,增量抽取的实现,对异构数据源和数据库中数据的变化有个准确的把握。信息抽取不是仅仅从大量的文献集或数据集中找出适合用户需要的那篇文献或部分内容,而是抽取出真正适合用户需要的相关信息片段,提供给用户,并找出这些信息与原文献直接的参考对照。2.2 数据转换和加工 从数据源中抽取的数据不一定完全满足目的库的要求,例如数据格式的不一致、数据输入错误、数据不完整等等,还要对抽取出的数据进行数据转换和加工。 数据转换是真正将源数据库中的数据转换为目标数据的关键步骤,在这个过程中通过对数据的合并汇总过滤以及重新格式化和再计算等,从而将操作型数据库中的异构数据转换成用户所需要的形式8。数据的转换和加工可以在ETL引擎中进行,也可以在数据抽取过程中利用数据库的特性同时进行。(1)ETL引擎中的数据转换和加工9 ETL引擎中一般以组件化的方式实现数据转换。常用的数据转换组件有字段映射、数据过滤、数据清洗、数据替换、数据计算、数据验证、数据加解密、数据合并、数据拆分等。这些组件如同一条流水线上的一道道工序,它们是可插拔的,且可以任意组装,各组件之间通过数据总线共享数据。有些ETL工具还提供了脚本支持,使得用户可以以一种编程的方式定制数据的转换和加工行为。 (2)在数据库中进行数据加工 关系数据库本身已经提供了强大的SQL、函数来支持数据的加工,如在SQL查询语句中添加where条件进行过滤,查询中重命名字段名与目的表进行映射,substr函数,case条件判断等等。相比在ETL引擎中进行数据转换和加工,直接在SQL语句中进行转换和加工更加简单清晰,性能更高。对于SQL语句无法处理的可以交由ETL引擎处理。 2.3 数据装载 将转换和加工后的数据装载到目的库中通常是ETL过程的最后步骤。装载数据的最佳方法取决于所执行操作的类型以及需要装入多少数据。当目的库是关系数据库时,一般来说有两种装载方式。 (1) SQL装载直接SQL语句进行insert、update、delete操作。 (2)采用批量装载方法如bcp、bulk、关系数据库特有的批量装载工具或API。 大多数情况下会使用第一种方法,因为它们进行了日志记录并且是可恢复的。但是,批量装载操作易于使用,并且在装入大量数据时效率较高。使用哪种数据装载方法取决于业务系统的需要。3 NoSQL技术10在大数据时代,web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了。对于大型的SNS网站,每天用户产生海量的用户动态,对于关系数据库来说,在庞大的表里面进行SQL查询,效率是极其低下乃至不可忍受的。此外,在基于web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,你的数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移,为什么数据库不能通过不断的添加服务器节点来实现扩展呢?所以上面提到的这些问题和挑战都在催生一种新型数据库技术的诞生,这就是NoSQL技术。3.1 NoSQL与关系型数据库设计理念比较关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。3.2 NoSQL技术特点易扩展性:NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。大数据量,高性能:NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用 Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的 Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。灵活的数据模型:NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。高可用:NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用 。3.3 CAP原理分布式数据系统的三要素:一致性(Consistency) ,可用性(Availability)、分区容忍性(Partition tolerance)。CAP原理:在分布式系统中,这三个要素最多只能同时实现两点,不可能三者兼顾。对于分布式数据系统,分区容忍性是基本要求。对于大多数web应用,牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。3.4 几种主流NoSQL数据库而互联网庞大的数据量和极高的峰值访问压力使得以增加内存、CPU等节点性能的垂直伸缩方案(Scale-UP)走入死胡同,使用大量廉价的机器组建水平可扩展集群(Scale Out)成为绝大多数互联网公司的必然选择;廉价的机器失效是正常的,大规模的集群,节点之间的网络临时阻断也是常见的,因此在衡量一致性、可用性和分区容忍性时,往往倾向先满足后两者,再用其他方法满足最终的一致性。在衡量CAP时,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是一个稀疏的、分布式的、持久化存储的多维度排序Map。Map的索引是行关键字、列关键字以及时间戳;Map中的每个value都是一个未经解析的byte数组。(row:string, column:string,time:int64)-string 。一个存储Web网页的例子的表的片断:l 行名:”n.www”l contents列族:存放的是网页的内容l anchor列族:存放引用该网页的锚链接文本。l “anchor:”列表示被引用l “anchhor:my.look.ca”列表示被my.look.ca引用l (”n.www”,” anchor: my.look.ca”,t8)-”CNN.com”(3) 技术要点l 基础:GFS, Chubby, SSTable。BigTable使用Google的分布式文件系统(GFS)存储日志文件和数据文件Chubby是一个高可用的、序列化的分布式锁服务组件BigTable内部存储数据的文件是Google SSTable格式的。l 元数据组织:chubby-metadata-tablet。元数据与数据都保存在 Google FS 中,客户端通过 Chubby 服务获得表格元数据的位置l 数据维护与访问:master server 将每个 tablet 的管理责任分配给各个 tablet server,tablet 的分布信息都保存在元数据中,所以客户端无须通过 master 来访问数据,只需要直接跟 tablet server 通信。l Log-structured 数据组织:写操作不直接修改原有的数据,而只是将一条记录添加到 commit log 的末尾,读操作需要从 log中 merge 出当前的数据版本。具体实现:SSTable, Memtable。(Memtable即内存表:将新数据或常用数据保存在内存表,可以减少磁盘IO访问)(4) 特点l 适合大规模海量数据,PB级数据;l 分布式、并发数据处理,效率极高;l 易于扩展,支持动态伸缩,适用于廉价设备;l 适合于读操作,不适合写操作;l 不适用于传统关系数据库。3.4.2 Dynamo12(1) Dynamo简介Dynamo 最初是 Amazon 所使用的一个私有的分布式存储系统。(2) 设计要点P2P 的架构:这区别于 Google FS 的 Single Master 架构,无须一个中心服务器来记录系统的元数据。 Performance(性能), Availability(可用性), Durability(数据持久性) 三者的折衷,可以根据应用的需求自由调整三者比例(3) 技术要点将所有主键的哈希数值空间组成一个首位相接的环状序列,对于每台机器,随机赋予一个哈希值,不同的机器就会组成一个环状序列中的不同节点,而该机器就负责存储落在一段哈希空间内的数据。数据定位使用一致性哈希;对于一个数据,首先计算其的哈希值,根据其所落在的某个区段,顺时钟进行查找,找到第一台机,该机器就负责存储在数据的,对应的存取操作及冗余备份等操作也有其负责,以此来实现数据在不同机器之间的动态分配。对于一个环状节点比如M个节点,比如一份数据需要保持N个备份,则该数据落在某个哈希区间内发现的第一个节点负责后续对应的N-1个节点的数据备份(注意M=N), Vector lock,允许数据的多个备份存在多个版本,提高写操作的可用性(用弱一致性来换取高的可用性)分布式存储系统对于某个数据保存多个备份,数据写入要尽量保证备份数据同时获得更新Dynamo采取数据最终一致性,在一定的时间窗口中,对数据的更新会传播到所有备份中,但是在时间窗口内,如果有客户读取到旧的数据,通过向量时钟(Vector Clock)。 容错:Sloppy Quorum, hinted handoff, Merkle tree ,Sloppy Quorum马虎仲裁,并非采用严格的数据一致性检查,用于实现最终一致性。hinted handoff,节点故障会恢复时,可动态维护系统可用性,使系统的写入成功大大提升。使用Merkle tree为数据建立索引,只要任意数据有变动,都将快速反馈出来。网络互联: Gossip-based membership protocol ,一种通讯协议,目标是让节点与节点之间通信,实现去中心化。(4) 特点高可用:设计上天然没有单点,每个实例由一组节点组成,从应用的角度看,实例提供IO能力。一个实例上的节点可能位于不同的数据中心内, 这样一个数据中心出问题也不会导致数据丢失。总是可写:hinted handoff确保在系统节点出现故障或节点恢复时,能灵活处理可根据应用类型优化可用性、容错性和高效性配置去中心化,人工管理工作少可扩展性较差:由于增加机器需要给机器分配DHT(分布式hash table)算法所需的编号,操作复杂度较高,且每台机器存储了整个集群的机器信息及数据文件的Merkle Tree信息,机器最大规模只能到几千台。4 大数据基础设施-分布式文件系统分布式文件系统(DFS,Distributed File System)使用户更加容易访问和管理物理上跨网络分布的文件。DFS为文件系统提供了单个访问点和一个逻辑树结构,通过DFS,用户在访问文件时不需要知道它们的实际物理位置,即分布在多个服务器上的文件在用户面前就如同在网络的同一个位置。4.1 成熟架构早期比较成熟的网络存储结构大致分为三种:直连式存储(DAS:Direct Attached Storage)、网络连接式存储(NAS:Network Attached Storage)和存储网络(SAN:Storage Area Network)。l 在直连式存储DAS中,主机与主机之间、主机与磁盘之间采用SCSI总线通道或FC通道、IDE接口实现互连,将数据存储扩展到了多台主机,多个磁盘。随着存储容量的增加,SCSI通道将会成为IO瓶颈。l 网络连接式存储NAS一种连接到局域网的基于IP的文件系统共享设备。NAS系统拥有一个专用的服务器,安装优化的文件系统和瘦操作系统,该OS专门服务于文件请求。一个NAS设备是专用、高性能、高速、单纯用途的文件服务和存储系统。l 存储网络SAN 是指存储设备相互连接且与一台服务器或一个服务器群相连的网络。一个SAN网络由负责网络连接的通信结构、负责组织连接的管理层、存储部件以及计算机系统构成。与NAS偏重文件共享不同,SAN主要是提供高速信息存储。网络存储通信中使用到的相关技术和协议包括SCSI、RAID、iSCSI以及光纤信道。随着全球非结构化数据快速增长,针对结构化数据设计的这些传统存储结构在性能、可扩展性等方面都难以满足要求,进而出现了集群存储、集群并行存储、P2P存储、面向对象存储等多种存储结构。l 集群存储,简而言之就是将若干个普通性能的存储系统联合起来来组成“存储的集群”。集群存储采用开放式的架构,具有很高扩展性,一般包括存储节点、前端网络、后端网络三个构成元素,每个元素都可以非常容易地进行扩展和升级而不用改变集群存储的架构。集群存储通过分布式操作系统的作用,会在前端和后端都实现负载均衡。l 集群并行存储采用了分布式文件系统混合并行文件系统。并行存储容许客户端和存储直接打交道,这样可以极大地提高性能。集群并行存储提高了并行或分区I/O的整体性能,特别是读取操作密集型以及大型文件的访问。获取更大的命名空间或可编址的阵列。通过在相互独立的存储设备上复制数据来提高可用性。通过廉价的集群存储系统来大幅降低成本,并解决扩展性方面的难题。集群存储多在大型数据中心或高性能计算中心使用。l P2P存储用P2P的方式在广域网中构建大规模分布式存储系统。从体系结构来看,系统采用无中心结构,结点之间对等,通过互相合作来完成用户任务。用户通过该平台自主寻找其它结点进行数据备份和存储空间交换,为用户构建了大规模存储交换的系统平台。P2P存储用于构建更大规模的分布式存储系统,可以跨多个大型数据中心或高性能计算中心使用。l 面向对象存储是SAN和NAS的有机结合,是一种存储系统的发展趋势。在面向对象存储中,文件系统中的用户组件部分基本与传统文件系统相同,而将文件系统中的存储组件部分下移到智能存储设备上,于是用户对于存储设备的访问接口由传统的块接口变为对象接口。4.2 典型系统基于多种分布式文件系统的研究成果,人们对体系结构的认识不断深入,分布式文件系统在体系结构、系统规模、性能、可扩展性、可用性等方面经历了较大的变化。下面按时间顺序介绍几个分布式文件系统的典型应用。1985年出现的NFS受到了广泛的关注和认可,被移植到了几乎所有主流的操作系统,成为分布式文件系统事实上的标准。NFS利用Unix系统中的虚拟文件系统(VFS-Virtual File System)机制,将客户机对文件系统的请求,通过规范的文件访问协议和远程过程调用,转发到服务器端进行处理;服务器端在VFS之上,通过本地文件系统完成文件的处理,实现了全局的分布式文件系统。Sun公司公开了NFS的实施规范,互联网工程任务组(The Internet Engineering Task Force,IETF)将其列为征求意见稿(RFC-Request for Comments),这很大程度上促使NFS的很多设计实现方法成为标准,也促进了NFS的流行。General Parallel File System(GPFS)13是目前应用范围较广的一个系统,在系统设计中采用了多项当时较为先进的技术。GPFS的磁盘数据结构可以支持大容量的文件系统和大文件,通过采用分片存储、较大的文件系统块、数据预读等方法获得了较高的数据吞吐率;采用扩展哈希(extensible hashing)技术来支持含有大量文件和子目录的大目录,提高文件的查找和检索效率。GPFS采用不同粒度的分布式锁解决系统中的并发访问和数据同步问题:字节范围的锁用于用户数据的同步,动态选择元数据节点(metanode)进行元数据的集中管理;具有集中式线索的分布式锁管理整个系统中空间分配等。GPFS采用日志技术对系统进行在线灾难恢复。每个节点都有各自独立的日志,且单个节点失效时,系统中的其他节点可以代替失效节点检查文件系统日志,进行元数据恢复操作。GPFS还有效地克服了系统中任意单个节点的失效、网络通信故障、磁盘失效等异常事件。此外,GPFS支持在线动态添加、减少存储设备,然后在线重新平衡系统中的数据。这些特性在需要连续作业的高端应用中尤为重要。IBM公司在GPFS的基础之上发展进化来的Storage Tank14以及基于Storage Tank的TotalStorage SAN File System15又将分布式文件系统的设计理念和系统架构向前推进了一步。它们除了具有一般的分布式文件系统的特性之外,采用SAN作为整个文件系统的数据存储和传输路径。它们采用带外(out-of-band)结构,将文件系统元数据在高速以太网上传输,由专门的元数据服务器来处理和存储。文件系统元数据和文件数据的分离管理和存储,可以更好地利用各自存储设备和传输网络的特性,提高系统的性能,有效降低系统的成本。Storage Tank采用积极的缓存策略,尽量在客户端缓存文件元数据和数据。即使打开的文件被关闭,都可以在下次使用时利用已经缓存的文件信息,整个文件系统由管理员按照目录结构划分成多个文件集(fileset)。每一个文件集都是一个相对独立的整体,可以进行独立的元数据处理和进行文件系统备份等。不同的文件集可以分配到不同的元数据服务器处理,形成元数据服务器机群,提供系统的扩展性、性能、可用性等。在TotalStorage中,块虚拟层将整个SAN的存储进行统一的虚拟管理,为文件系统提供统一的存储空间。这样的分层结构有利于简化文件系统的设计和实现。同时,它们的客户端支持多种操作系统,是一个支持异构环境的分布式文件系统。在SAN File System,采用了基于策略的文件数据位置选择方法,能有效地利用系统的资源、提高性能、降低成本。GFS(Google File System)系统集群由一个master节点和大量的chunkserver结点构成,并被许多客户(Client)访问。GFS把文件分成64MB的块,减少了元数据的大小,使Master节点能够非常方便地将元数据放置在内存中以提升访问效率。数据块分布在集群的机器上,使用Linux的文件系统存放,同时每块文件至少有3份以上的冗余。考虑到文件很少被删减或者覆盖,文件操作以添加为主,充分考虑了硬盘线性吞吐量大和随机读点慢的特点。中心是一个Master节点,根据文件索引,找寻文件块。系统保证每个Master都会有相应的复制品,以便于在Master节点出现问题时进行切换。在Chunk层,GFS将节点失败视为常态,能够非常好地处理Chunk节点失效的问题。对于那些稍旧的文件,可以通过对它进行压缩,来节省硬盘空间,且压缩率惊人,有时甚至可以接近90%。为了保证大规模数据的高速并行处理,引入了MapReduce16编程模型,同时,由于MapReduce将很多繁琐的细节隐藏起来,也极大地简化了程序员的开发工作。Yahoo也推出了基于MapReduce的开源版本Hadoop,目前Hadoop在业界已经被大规模使用。HDFS(Hadoop Distributed File System)有着高容错性的特点,并且设计用来部署在低廉的硬件上,实现了异构软硬件平台间的可移植性。为了尽量减小全局的带宽消耗读延迟,HDFS尝试返回给一个读操作离它最近的副本。硬件故障是常态,而不是异常,自动地维护数据的多份复制,并且在任务失败后能自动地重新部署计算任务,实现了故障的检测和自动快速恢复。HDFS放宽了可移植操作系统接口(POSIX:Portable Operating System Interface)的要求,这样可以流的形式访问文件系统中的数据,实现了以流的形式访问写入的大型文件的目的,重点是在数据吞吐量,而不是数据访问的反应时间。HDFS提供了接口,来让程序将自己移动到离数据存储更近的位置,消除了网络的拥堵,提高了系统的整体吞吐量。HDFS的命名空间是由名字节点来存储的。名字节点使用叫做EditLog的事务日志来持久记录每一个对文件系统元数据的改变。名字节点在本地文件系统中用一个文件来存储这个EditLog。整个文件系统命名空间,包括文件块的映射表和文件系统的配置都存在一个叫FsImage的文件中,FsImage也存放在名字节点的本地文件系统中。FsImage和Editlog是HDFS的核心数据结构。5 大数据基础设施-云存储面对大数据的海量异构数据,传统存储技术面临建设成本高、运维复杂、扩展性有限等问题,成本低廉、提供高可扩展性的云存储技术日益得到关注。5.1 定义 由于业内没有统一的标准,各厂商的技术发展路线也不尽相同,因此相对于云计算,云存储概念存在更多的多义和模糊现象17。结合云存储技术发展背景及主流厂商的技术方向,可以得出如下定义:云存储是通过集群应用、网格技术或分布式文件系统等,将网络中大量各种不同的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统18。5.2 云存储架构云存储是由一个网络设备、存储设备、服务器、应用软件、公用访问接口、接入网和客户端程序等组成的复杂系统。以存储设备为核心,通过应用软件来对外提供数据存储和业务访问服务。云存储的架构如图2所示:图2 云存储架构l 存储层:存储设备数量庞大且分布在不同地域,彼此通过广域网、互联网或光纤通道网络连接在一起。在存储设备之上是一个统一存储设备管理系统, 实现存储设备的逻辑虚拟化管理、多链路冗余管理,以及硬件设备的状态监控和故障维护。l 基础管理层:通过集群、分布式文件系统和网格计算等技术,实现云存储设备之间的协同工作,使多个的存储设备可以对外提供同一种服务, 并提供更大更强更好的数据访问性能。数据加密技术保证云存储中的数据不会被未授权的用户访问, 数据备份和容灾技术可以保证云存储中的数据不会丢失, 保证云存储自身的安全和稳定。l 应用接口层:不同的云存储运营商根据业务类型,开发不同的服务接口,提供不同的服务。例如视频监控、视频点播应用平台、网络硬盘,远程数据备份应用等。l 访问层: 授权用户可以通过标准的公用应用接口来登录云存储系统,享受云存储服务19。5.3 云存储中的数据缩减技术大数据时代云存储技术的关键技术主要有云存储中的存储虚拟化、分布式存储技术、数据备份、数据缩减技术、内容分发网络技术、数据迁移、数据容错技术等技术20,而其中云存储的数据缩减技术,能够满足海量信息爆炸式增长趋势,在一定程度上节约企业存储成本,提高效率,从而成为人们关注的重点。5.3.1 自动精简配置传统配置技术为了避免重新配置可能造成的业务中断,常常会过度配置容量。在这种情况下,一旦存储分配给某个应用,就不可能重新分配给另一个应用,由此造成了已分配的容量没有得到充分利用,造成资源极大浪费。 自动精简配置技术利用虚拟化方法减少物理存储空间的分配,最大限度提升存储空间利用率,其核心原理是“欺骗”操作系统,让操作系统认为存储设备中有很大的存储空间,而实际的物理存储空间则没有那么大。自动精简配置技术的应用会减少已分配但未使用的存储容量的浪费,在分配存储空间时,需要多少存储空间系统则按需分配。随着数据存储的信息量越来越多,实际存储空间也可以及时扩展,无需用户手动处理21。5.3.2 自动存储分层自动存储分层(AST)技术是存储上减少数据的另外一种机制,主要用来帮助数据中心最大程度地降低成本和复杂性。在过去,进行数据移动主要依靠手工操作,由管理员来判断这个卷的数据访问压力或大或小,迁移的时候也只能一个整卷一起迁移。自动存储分层技术的特点则是其分层的自动化和智能化。利用自动存储分层技术一个磁盘阵列能够把活动数据保留在快速、昂贵的存储上,把不活跃的数据迁移到廉价的低速层上,使用户数据保留在合适的存储层级,减少了存储需求的总量,降低了成本,提升了性能。随着固态存储在当前磁盘阵列中的采用以及云存储的来临,自动存储分层已经成为大数据时代补充内部部署的存储的主要方式。5.3.3 重复数据删除 物理存储设备在使用一段时间后必然会出现大量重复的数据。“重复删除”技术(De-duplication)作为一种数据缩减技术可对存储容量进行优化。它通过删除数据集中重复的数据,只保留其中一份,从而消除冗余数据。使用De-dupe技术可以将数据缩减到原来的1/20-1/50。由于大幅度减少了对物理存储空间的信息量,从而达到减少传输过程中的网络带宽、节约设备成本、降低能耗的目的。重复数据删除技术原理De-dupe按照消重的粒度可以分为文件级和数据块级。可以同时使用种以上的hash算法计算数据指纹,以获得非常小的数据碰撞发生概率。具有相同指纹的数据块即可认为是相同的数据块,存储系统中仅需要保留一份。这样,一个物理文件在存储系统中就只对应一个逻辑表示。5.3.4 数据压缩数据压缩技术是提高数据存储效率最古老最有效的方法之一,可以显著降低待处理和存储的数据量,一般情况下可实现2:13:1的压缩,对于随机数据效果更好,像数据库。其原理就是将收到的数据通过存储算法存储到更小的空间中去。在线压缩(RACE)是最新研发的数据压缩技术,与传统压缩技术不同。对RACE技术来说,不仅能在数据首次写入时进行压缩,以帮助系统控制大量数据在主存中杂乱无章地存储的情形。还可以在数据写入到存储系统前压缩数据,进一步提高存储系统中的磁盘和缓存的性能和效率。数据压缩中使用的LZS算法基于LZ77实现,主要由部分构成,滑窗(Sliding Window)和自适应编码(Adaptive Coding)。压缩处理时,在滑窗中查找与待处理数据相同的块,并用该块在滑窗中的偏移值及块长度替代待处理数据,从而实现压缩编码。如果滑窗中没有与待处理数据块相同的字段,或偏移值及长度数据超过被替代数据块的长度,则不进行替代处理。LZS算法的实现非常简洁,处理比较简单,能够适应各种高速应用。图3 LZ777算法示意图6 数据可视化图灵奖得主 Jim Gray 在 2007 年提出了 “以数据为基础的科学研究第四范式” 的概念22, 研究方法已经从 “我应该设计个什么样的实验来验证这个假设?” 逐渐发展为 “从这些已知的数据中我能够看到什么相关性?” 数据可视化是获取大数据Value的有效手段。6.1 定义与目的数据可视化为人们提供了从阅读局部信息到纵观全局信息、从表面到本质和从内容到结构的有力工具。其演化过程是从文本到树和图, 再到多媒体, 以便最大限度地利用人们的多通道和分布式认知功能以及形象思维功能, 达到意会23。数据可视化致力于通过交互可视界面来进行分析、推理和决策。人们通过使用可视分析技术和工具,从海量、动态、不确定甚至包含相互冲突的数据中整合信息,获取对复杂情景的更深层的理解。可视分析技术允许人们对已有预测进行检验,对未知信息进行探索,提供快速、可检验和易理解的评估24,以及提供更有效的交流手段。数据可视化的开发和大部分项目开发一样,也是根据需求来根据数据维度或属性进行筛选,根据目的和用户群选用表现方式25。同一份数据可以可视化成多种看起来截然不同的形式。l 有的可视化目标是为了观测、跟踪数据,所以就要强调实时性、变化、运算能力,可能就会生成一份不停变化、可读性强的图表。l 有的为了分析数据,所以要强调数据的呈现度、可能会生成一份可以检索、交互式的图表l 有的为了发现数据之间的潜在关联,可能会生成分布式的多维的图表。l 有的为了帮助普通用户或商业用户快速理解数据的含义或变化,会利用漂亮的颜色、动画创建生动、明了,具有吸引力的图表。l 还有的图表可以被用于教育、宣传或政治,被制作成海报、课件,出现在街头、广告手持、杂志和集会上。这类图表拥有强大的说服力,使用强烈的对比、置换等手段,可以创造出极具冲击力自指人心的图像。在国外许多媒体会根据新闻主题或数据,雇用设计师来创建可视化图表对新闻主题进行辅助。6.2 数据分类及可视化方法要可视化的数据大致可分一下几类26:6.2.1 一系列对象,之间相互关联这种情况下因为要展示数据之间相互关系,所以实质上是一个网络图,不过通过一些技巧可以把简单网络图变成更好的形式。例如,转换成流图27,或圈形的网络图28,圈形可以使得连线集中在圈内部,而且可以减少交叉。6.2.2 层级数据数据之间可分成几个层级关系,就是层级图29。使用散点,使用散点的大小或者颜色等属性来表示数据的大小30。标签云也是属于这类,我们可以通过每个 tag 的大小颜色等等来标示数据的大小。上面的两种方法都可以归纳到内隐关系呈现层次化数据31。内隐式层次数据可视化方法使用包含、遮挡、相邻等空间关系表示数据中的逻辑关系,更高效地表现复杂海量的层次数据,提供快速对数据全貌的理解。相比于传统的节点链接表示,内隐式表示方法能够最大限度地利用所有显示空间,提供更好的数据呈现效果和交互体验。6.2.3 多维数据如何将超过人类理解能力的三维以上的数据,转化为人类能视觉直观理解的可视化结果,是多维数据可视化所研究的课题。多维数据有多种传统的可视化方法、包括平行坐标、散点图矩阵32和维度降维法。6.2.4 将时间和空间可视化通过时间的维度来查看指标值的变化情况,一般通过增加时间轴的形式33,也就是常见的趋势图。当图表存在地域信息并且需要突出表现的时候,可用地图将空间可视化,地图作为主背景呈现所有信息点34。6.2.5 让图表“动”起来数据图形化完成后,可结合实际情况,将其变为动态化和可操控性的图表,用户在操控过程中能更好地感知数据的变化过程,提升体验35。实现动态化通常以下两种方式: 交互和动画。6.2.6 多种可视化方法结合单一的可视化方法已不能满足需要。越来越多的可视化系统通过结合不同的科学和数据可视化方法,提供一致的多视角和连贯的交互手段,使可视化系统能够提供日益复杂的数据所需的分析能力36。6.3 可视化原则准确性:当在扩展数据、图表和图形,使用不同尺寸和形状的数据可视化时,不能过度。最好使用数学公式,有依据的数字,然后在图形中使用相同的比例。而不是随手绘制形状。创新性:创造力是从简单的图表中体现出来的。不要害怕使用排版,插图,图标或其他设计元素。简洁的:简洁其实就是需要把一些繁琐复杂很难以理解的数据转化成一些简单易懂的数据表现形式。当创建一个信息图表的主要目标是回答一个具体的问题的时候,图表数据要覆盖图形,并开始通过它简洁地回答问题。当这样做的同时,可以添加额外的事实或资料,使您的图形更广泛。简洁的回答话题,也将有助于创建一个更有效的可视化图形。6.4 大可视化的几个挑战6.4.1 现场可视化37,38传统的先把数据存储在磁盘上再分析的方法,在超大规模数据时已不再可行。替代它的是,当数据还在内存中时就进行现场可视化。该方法可极大的减少I/O开销。但是该方法带来了一系列设计和实现上的挑战,包括交互分析、算法、内存、工作流和线程。这些技术挑战中,有些理论上当前已能够解决,但需要在高性能计算、策略规则和商业硬件系统上进行较大的改变。6.4.2 不确定性海量的数据难免掺杂噪声,加之数据的持续增加,人类处理整个数据集的能力严重受限。在很多任务中不得不对数据集进行多次抽样,这样就带来了更大的不确定性。所以,必须设计出能够处理不完整数据的可视化分析技术,能给用户直观的视角,帮助用户降低决策风险。6.4.3 用户界面和交互数据量日益增加,而人类的认知能力由于客观的生物性限制难以快速提高。在大数据可视化中,需对用户界面和交互进行深度的研究,以平衡大数据所含信息与人类认知能力之间逐渐扩大的鸿沟。6.4.4 超视野显示对数据进行更多的数据映射和降维,同时就意味着需要更多的抽象表示,理解这些抽象的表示需要人具备额外的洞察力和解释能力。虽然可以制造尺寸和分辨率都很大的显示器,但人类的视敏度是有限的。由于同时牵涉了人和机器的限制,不是一蹴而就能解决的。7 总结本文探讨了大数据完整生命周期相关的5个部分,分析了各部分的研究现状,以及其中的难点和技术挑战。对于大数据的研究仍处于一个非常初步的阶段,还有很多基础性的问题有待解决。大数据相关的概念和技术会继续更广泛地冲击技术人员的眼球,我们需要做的是抓住问题的本质,尽可能理性地分析自己对数据的核心需求是什么、用它来解决什么问题。References: 1 Nature. Big DataEB/OL. 2012910902./news/specials/bigdata/index.html 2 Randal E. Bryant, Randy H. Katz, Edward D. Lazowska. Big9Data Computing: Creating revolutionary breakthroughs in commerce, science, and society R. 3 Science. Special Online Collection: Dealing with Data EB/OL. 2012910902./site/special/data/. 4 D. Agrawal, P. Bernstein, E. Bertino, et al. Challenges and Opportunities with Big Data A community white paper developed by leading researchers across the United StatesR. 11 Bigtable: A Distributed Storage System for Structured Data, Fay Chang, Jeffrey Dean, Sanjay Ghemawat, Wilson C. Hsieh, Deborah A. Wallach Mike Burrows, Tushar Chandra, Andrew Fikes, Robert E. Gruber ,In OSDI,2006.to appear12 Dynamo: Amazons Highly Available Key-value Store,Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vossh

温馨提示

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

评论

0/150

提交评论