浅析云计算环境下的数据管理技术
2016-03-14李一清
李一清,张 静
(河西学院 信息技术与传媒学院,甘肃 张掖 734000)
浅析云计算环境下的数据管理技术
李一清,张静
(河西学院 信息技术与传媒学院,甘肃 张掖 734000)
随着计算机网络技术的迅速发展,以及人们对计算能力、资源利用效率、资源集中化的迫切需求,云计算应运而生。目前,云计算及云数据管理技术已经成为一种全新的互联网应用技术模式。本文介绍了云计算的概念和云数据管理的特点,并在此基础上对互联网主流的数据管理技术GFS,BigTable和MapReduce等进行分析,最后指出了云数据管理技术的发展前景。
云计算;云数据;数据管理
近年来,随着互联网时代信息与数据的飞速增长,用户对储存和处理大量数据的要求越来越高,面临着如何有效的利用更少的资源解决更多的问题,在这种情况下,云计算技术就应运而生了。作为一项正在兴起中的技术,云计算以开放的标准和服务为基础,以互联网为中心,让互联网上的各种计算资源协同工作,共同组成数个庞大的数据中心和计算中心,为各类用户提供各类安全、快速、便捷的数据存储和网络计算等特定服务。云计算综合了分布式计算,并行计算,网络存储等各种技术,所有这些技术为产生更强大的计算能力和服务提供了可能。
1 云计算
对于到底什么是云计算,至少可以找到100种解释。现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池 (资源包括网络、服务器、存储、应用软件、服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互[1]。云计算实质上是给用户提供像传统的电力、水、煤气一样的按需计算服务,与其不同在于,它是通过互联网进行传输的。目前,云计算的服务形式包括三种:即基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。
2 云数据管理的特点
云计算通过互联网将超大规模的计算能力与资源整合起来形成一个巨大的资源池,并以可信服务的形式按需提供给用户。因此,大规模的云计算资源是实现云计算服务的基本条件。云计算还需要对分布的、海量的数据进行处理,在大量的数据中找到特定的数据,并分析向用户提供高效的服务。简单来说,云计算的数据管理工作就是接受用户的资源请求,并把特定的资源分配给请求者,云数据管理主要具备以下几个特点。
2.1资源的海量性
近年来,随着云计算应用规模的扩大,资源的数据量会呈现爆炸性增长的趋势。如何有效地改进已有的技术和方法或提出新的技术和方法来高效地管理和处理这些海量数据并从数据中准确地提取信息是很重要的。
2.2数据异构性
在云计算各种各样的应用中,不同领域不同行业在数据获取阶段所采用的设备、手段和方式都千差万别,取得的数据在数据形态、数据结构上也就各不相同,最终导致结构化数据、半结构化数据、非结构化数据并存,造成了数据资源的异构性,导致了对数据访问、分析和处理方式多种多样。
2.3模糊性
云计算中的数据有明显的模糊性特征,主要包括数据本身的模糊性、语义匹配的模糊性和查询分析的模糊性等。为了让用户获得准确的信息,还有待相关技术的革新。
3 云计算环境下的数据管理技术
云计算系统对海量数据进行处理、分析后向用户提供高效的服务。因此,数据管理技术必须能够高效的管理海量数据。面对复杂的数据管理工作,数据管理技术应用而生。目前,云计算系统中的数据管理技术主要是GoogleFileSystem,BigTable,MapReduce,Dynamo等技术。
3.1GFS技术
GFS(GoogleFileSystem)是Google公司为了存储海量搜索数据而设计的专用文件系统,是一个可扩展的分布式文件系统,用于访问大型的、分布式的数据。它使用廉价的商用硬件搭建系统并向大量用户提供容错的高性能服务,并与MapReduce以及BigTable等技术紧密结合。为保证云计算的高可用性,GFS采用分布式存储的方式来存储数据;为保证云计算的高可靠性,GFS采用数据冗余技术来存储数据,每份数据在系统中保存3个以上的备份。
一个GFS集群由一个Master(主服务器)和大量的ChunkServer(数据块服务器)构成,并被许多Client(客户端)访问。Master是GFS的管理节点,在逻辑上只有一个,它保存系统的所有元数据,负责整个文件系统的管理,是整个GFS文件系统的核心。Master所保存的元数据主要包括名字空间、访问控制信息以及当前Chunk的位置信息等。
GFS技术的一次简单读取的过程,即Client通过Master节点,获取将要与之进行交互的Chunk Server的位置信息,然后直接访问这些 Chunk Server完成数据存取,所以客户端与Master之间只有控制流而无数据流,GFS的这种设计方法实现了控制流和数据流的分离,极大地降低了Master的负载,使之不成为系统性能的一个瓶颈。之后客户端发送请求到其中的一个副本处,一般会选择最近的,请求信息包含了Chunk标识和字节范围。在对这个Chunk的后续读取操作中,客户端不必再和Master节点通讯了,除非缓存的元数据信息过期或者文件被重新打开。实际上,Client通常会在一次请求中查询多个Chunk信息,Master节点的回应也可能包含了这些被请求的Chunk信息。
3.2BigTable技术
BigTable是Google设计的分布式数据存储系统,是建立在GFS和MapReduce之上,用来处理海量的数据的一种非关系型的数据库。确切的说BigTable更像是一个规模超过1PB(1024TB)的庞大的表。它将所有数据都作为对象来处理,形成一个巨大的表格。对于BigTable技术,Google给出了如下定义:BigTable是一种为了管理结构化数据而设计的分布式存储系统,这些数据可以扩展到非常大的规模。例如在数千台商用服务器上的达到PB (Petabytes)规模的数据[2]。
BigTable的数据模型是一个有序的、稀疏的、持久化存储的多维度的映射表。该数据模型由行(row)、列族(columnfamilies)和时间戳(timestamps)这几个基本元素来进行三维定位。行是划分BigTable内容的标准,同时将多个行组成一个小表,保存到某一个服务器节点中,这个小表就被称为Tablet[3];Tablet是数据分布和负载均衡调整的最小单位;列族由同一类型的列关键字组成,是访问控制的基本单位。时间戳用来存储同一份数据的不同版本,不同版本的数据按照时间戳倒序排序,即最新的数据排在最前面。时间戳的类型是64位整形。
BigTable的执行包括了三个主要的组件:链接到客户程序中的库、一个Master服务器和多个Tablet服务器。Master服务器主要负责为Tablet服务器分配Tablets、对Tablet服务器进行负载平衡、探测新加入的或者过期失效的Tablet服务器、以及对保存在GFS上的文件进行垃圾回收等。每个Tablet服务器负责处理它所加载的Tablet的读写操作,以及对过大的Tablets进行分割。客户端读取的数据都不经过Master服务器,客户程序直接和Tablet服务器进行交互。由于BigTable的客户程序不必通过Master服务器来获取Tablet的位置信息,因此Master服务器的负载很轻。
3.3MapReduce技术
MapReduce是云计算的核心计算模式,是一种用于大规模数据集(大于1TB)的并行运算编程模型和计算框架。MapReduce对海量数据处理思想即分而治之,体现在对作业的处理过程中即把处理作业的过程分为Map(映射)过程和Reduce(规约)过程。即先通过用户自定义的Map函数将数据切割成不相关的区块,分配给大量计算机处理达到分布运算的效果,再通过用户自定义的Reduce函数将结果汇总,输出开发者需要的结果[4]。
一个Mapreduce程序首先会把输入的用户输入数据集切分成若干独立的数据块,数据块大小一般为16MB到64MB。第一阶段由作业服务器调度任务服务器读取切分好的输入数据块并执行map任务,然后将map任务输出保存在本地;第二阶段由作业服务器调度任务服务器执行 reduce任务,reduce任务服务器读取第一阶段输出文件并执行reduce任务,将结果写入输出目录文件中。
4 云数据管理技术分析
在新兴的云计算数据管理领域,GFS、BigTable、MapReduce、Dynamo这四种技术对云计算海量数据的问题和应用特点有了很多创新,综合来看它们主要运用于云计算的以下四个层次。
4.1数据组织与管理
采用分布式的存储技术可用于大型的、分布式的、对大量数据进行访问的应用,类似GFS。它运行于各种类似的普通硬件上,提供容错功能,为用户提供可靠、高并发和高性能的数据并存取访问。
4.2数据集成与管理
针对数据的非确定性、分布异构性、海量、动态变化等特点,采用分布式管理技术,如BigTable、Dynamo技术对大数据进行处理、分析,为用户提供高效的服务[5]。
4.3分布式并行处理
为了高效地在分布式环境下进行数据的定位和处理,采用云计算的并行编程模式,如MapReduce,将任务分成多个子任务,通过映射和化简这两步来实现任务在大规模计算节点的调度与分配。
4.4数据分析
用户应用云资源需要对云数据进行分析和挖掘,通过语义分析技术,定位所需要的数据资源,从而从大量的结构化的、半结构化的文本、图形、和图像数据中提取潜在的、事先未知的、有用的数据。
5 云数据管理技术的安全问题
GFS、BigTable、MapReduce、Dynamo是云计算的关键技术,但是它们还是存在一系列的问题有待解决。
在GFS技术当中,虽然高冗余度能提高数据的可靠性,但是也会导致数据操作不一致性的问题,多个数据备份副本对使用者权限设置不同,备份出错将导致数据的不一致带来安全问题。
对于BigTable技术,因为它只对结构化数据起作用,所以会过滤一些半结构化、非结构化数据,导致读取数据不正确,列存储方式读取数据时有时候会导致数据读取不完整。
MapReduce作为一种较为流行的云计算编程模型,在云计算系统中应用广阔,但是基于它的开发工具Hadoop并不完善。特别是其调度算法过于简单,判断需要进行推测执行的任务的算法造成过多任务需要推测执行,降低了整个系统的性能。而且Mapreduce技术将任务分成多个子任务完成时,各个子任务间处理速度的差异导致安全问题。
Dynamo技术以简单的键/值方式存储数据,导致它不支持复杂的查询,这一点它是不能与BigTable同日而语的。Dynamo是完全的分布式、去中心化,但它的很多一致性问题又都是去中心化设计所导致的,所以采用中心化还是去中心化还有待研究。
6 云数据管理的发展前景
6.1数据存储更安全可靠
支撑云计算的是大规模的集群计算系统,随着云计算资源的不断增长,云计算规模也要随着扩大,存储的资源越来越多,数据安全可靠很可能成为云计算的一个瓶颈问题,为更好地解决这个问题,各式各样的云数据管理技术在竞争中相继产生。
6.2对海量数据的准确定位
云计算需要对分布的、海量的数据进行处理、分析,现在的云数据管理技术都存在着搜寻信息的模糊性。在规模巨大的数据中准确无误地找到特定的数据,并且支持复杂的查询,云数据管理技术肯定要适应这个潮流。
6.3数据的自我管理
云计算中管理任务复杂,大多数情况下,由于云系统中机器数量太大,数据库管理员和系统管理员很难对所有机器进行全面周全的人工干预,所以迫切地需要一种云数据管理技术对云计算实行自动管理数据。
6.4能够处理多结构化数据
云数据管理技术不再是只单纯地处理一种结构的数据,而是从结构化、半结构化或非结构的数据中都能提取出有用信息,并且能保证处理速度迅速,保证数据的一致性。
7 总结
云计算是基于多种技术的新兴计算模式,所带来的新兴IT资源共享和应用模式是互联网之后的又一次变革,将极大地促进IT产业特别是软件服务业的发展。随着云计算的流行和云数据管理技术的逐渐成熟,相信在不久的将来,云计算基于互联网的应用将会逐渐渗透到每个人的生活中,对我们的服务、生活都会带来深远的影响。
[1] MichaelMiller.云计算[M].机械工业出版社.2009.4
[2] 陈全,邓倩妮.云计算及其关键技术[J].计算机应用,2009,29(9):2562-2567.
[3] 陈康,郑纬民.云计算:系统实例与研究现状[J].软件学报,2009,20(5):1337-1348.
[4] 李成华,张新访,金海,等.MapReduce:新型的分布式并行计算编程模型[J].计算机工程与科学,2011,33(3):129-135.
[5] 刘正伟,文中领,张海涛.云计算和云数据管理技术[J].计算机研究与发展,2012,49(1):26-31.
TP393