近年来,由于数据的快速增长以及用户对计算机和存储能力的要求越来越高,与此同时“物联网”、“三网融合”、“智能电网”等应用快速发展也对信息系统的计算和数据管理带来了更高的要求,云计算(cloud computing)是一项正在兴起中的技术,云计算能够改变普通用户使用计算机的模式为用户提供按需分配的计算能力、存储能力及应用服务能力,目的是让用户使用计算资源就像使用水和电一样方便,大大降低用户的软、硬件采购费用。云计算是在分布式系统、网格计算等基础上提出的一个新概念,它面对的是超大规模的分布式环境,其核心是提供海量数据存储以及高效率的计算能力,由此衍生出一系列的应用。但是,云计算绝不仅仅是一个计算的问题,它需要融合许许多多的技术与成果。基于云计算的数据管理、海量分布式存储、并行计算都是云计算的重要组成部分。
1云计算
云计算是分布式处理(distributed computing)、并行处理(parallel computing)和网格计算(gridcomputing)的发展,或者说是这些计算机科学概念的商业实现。
云计算的基本原理是,通过使计算分布在大量的分布式计算机上,而非本地计算机或远程服务器中,企业数据中心的运行将更与互联网相似。这使得企业能够将资源切换到需要的应用上,根据需求访问计算机和存储系统。
这可是一种革命性的举措,打个比方,这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也可以作为一种商品进行流通,就像煤气、水电一样,取用方便,费用低廉。最大的不同在于,它是通过互联网进行传输的。
近年来国内外各知名IT企业都在大力开发和推进云计算,如Google推出Google Apps服务,亚马逊推迟弹性计算云(EC2)服务,IBM推出“蓝云”计划,国内浪潮推出面向云计算的“云海”操作系统,初步的云计算产品已经投入了正式的使用,但云计算还处于发展阶段,与之相关的各项技术还不够成熟。
2云数据管理技术
云计算需要对分布的、海量的数据进行处理、分析,因此,数据管理技术必需能够高效地管理大量的数据。云计算的数据具有海量、异构、非确定性的特点,需要采用有效的数据管理技术对海量数据和信息进行分析和处理,构建高度可用和可扩展的分布式数据存储系统,目前云计算系统中的数据管理技术主要是Google的GFS,MapReduce:MapReduce数据管理技术和亚马逊的Dynamo。
2.1 云数据管理数据特点
云计算中数据的特点主要表现在以下几个方面:
1)海量性。近年来,随着物联网等应用的兴起,很多应用主要通过相当数量的传感器来采集数据。随着这种应用规模的扩大和在越来越多领域中的应用,数据量会呈现爆炸性增长的趋势。如何有效地改进已有的技术和方法或提出新的技术和方法来高效地管理和处理这些海量数据将是从数据中提取信息并进一步融合、推理和决策的关键。
2)异构性。在云计算各种各样的应用中,不同领域不同行业在数据获取阶段所采用的设备,手段和方式都千差万别,取得的数据在数据形态、数据结构上也各不相同。传感器有不同的类别,如二氧化碳浓度传感器、温度传感器、湿度传感器等,不同类别的传感器所捕获、传递的信息内容和信息格式会存在差异。以上因素导致了对数据访问、分析和处理方式多种多样。数据多源性导致数据有不同的分类,不同的分类具有不同的数据格式,最终导致结构化数据、半结构化数据、非结构化数据并存,造成了数据资源的异构性。
3)非确定性。云计算中的数据具有明显的不确定性特征,主要包括数据本身的不确定性、语义匹配的不确定性和查询分析的不确定性等。为了获得客观对象的准确信息,需要去粗取精、去伪存真,以便人们更全面地进行表达和推理。
2.2 GFS技术
Google文件系统(Google file system,GFS)是一个大型的分布式文件系统。它为Google云计算提供海量存储,并且与Chubby,MapReduce以及BigTable等技术结合十分紧密,形成Google的云计算解决方案。GFS的系统架构如图1所示。GFS将整个系统的节点分为3类角色:Client(客户端)、Master(主服务器)和Chunk Server(数据块服务器)。Client是GFS提供给应用程序的访问接口,它是一组专用接口,不遵守POSIX规范,以库文件的形式提供。应用程序直接调用这些库函数,并与该库链接在一起。Master是GFS的管理节点,在逻辑上只有一个,它保存系统的元数据,负责整个文件系统的管理,是GFS文件系统中的大脑。Chunk Server负责具体的存储工作。数据以文件的形式存储在Chunk Server上,Chunk Server的个数可以有多个,它的数目直接决定了GFS的规模。GFS将文件按照固定大小进行分块,默认是64MB,每一块称为一个Chunk(数据块),每个Chunk都有一个对应的索引号(Index)。
客户端在访问GFS时,首先访问Master节点,获取将要与之进行交互的Chunk Server信息,然后直接访问这些Chunk Server完成数据存取。GFS的这种设计方法实现了控制流和数据流的分离。
Client与Master之间只有控制流,而无数据流,这样就极大地降低了Master的负载,使之不成为系统性能的一个瓶颈。Client与Chunk Server之间直接传输数据流,同时由于文件被分成多个Chunk进行分布式存储,Client可以同时访问多个ChunkServer,从而使得整个系统I/O高度并行,系统整体性能得到提高。
图1 GFS体系结构
2.3 BigTable技术
Google提出的BigTable技术是建立在GFS和MapReduce之上的一个大型的分布式数据库,BigTable实际上的确是一个很庞大的表,它的规模可以超过1PB(1024TB)。它将所有数据都作为对象来处理,形成一个巨大的表格。Google给出了如下定义:BigTable是一种为了管理结构化数据而设计的分布式存储系统,这些数据可以扩展到非常大的规模,例如在数千台商用服务器上的达到PB(Petabytes)规模的数据,现在有很多Google的应用程序建立在BigTable之上,例如Google Earth等,而基于BigTable模型实现的Hadoop Hbase也在越来越多的应用中发挥作用。
BigTable就是一个稀疏的、多维的和排序的Map,每个Cell(单元格)由行关键字、列关键字和时间戳来进行三维定位。Cell的内容本身就是一个字符串,比如,存储每个网页的内容。在图2中,反向的URL“eom.cnn.www”是这行的关键字,“contents”这列存储了多个版本的网页内容,每个版本都有一个时间戳。BigTable还提供一个用于将多个相似的列整合至一起的Column Family(列组)机制,比如,下面“anchor”这个Column Family就有“anchor:cnnsi.com”和“anchhor:my.look.ca”这个两个列.通过Column Family这个概念,使得表可以轻松地横向扩展。
图2中,对于文档的全文有一个文本列,还有一个标题列,这样,不需要对全部的文档文本进行分析,就可以快速地找到文档的标题。有两列用于锚文本。一个是anchor:other.com,包含从站点other.eom指向example.com的超链接的锚文本;如图2中的单元所示,超链接上的文本是“example”.anchor:null.com描述了从null.com指向example.com的一个超链接上的锚文本是“点击此处”.这些列都属于锚文本列组(column group).可以向该列组中增加其他的列,以增加更多的链接信息。
图2 BigTable数据模型
BigTable使用一个3层的、类似B+树的结构存储Tablet的位置信息,如图3所示。
第1层是一个存储在Chubby中的文件,它包含了Root Tablet的位置信息。Root Tablet包含了一个特殊的METADATA表里所有的Tablet的位置信息。METADATA表的每个Tablet包含了一个用户Tablet的集合。Root Tablet实际上是METADATA表的第1个Tablet,只不过对它的处理比较特殊(Root Tablet永远不会被分割)这就保证了Tablet的位置信息存储结构不会超过3层。其中在Chubby中存储着多个Root Tablet的位置信息。Metadata Tables中存储着许多User Table的位置信息。因此当用户读取数据时,需先从Chubby中读取Root Tablet的位置信息然后逐层往下读取直至找到所需数据为止。
BigTable的负载均衡采用的是传统的方式,BigTable在执行任务时,在任意时刻每个Tablet只被分配到一个Tablet服务器。依靠一个master服务器监视子表server的负载情况,根据所有子表服务器的负载情况进行数据迁移的,比如将访问很热的列表迁移到压力轻的子表服务器上,以调节Tablet服务器的负载平衡。
图3 Tablet的位置结构
2.4 Dynamo技术
Dynamo是一个高可用,专有的键值结构化存储系统,或分布式存储系统。它同时具有数据库和分布式Hash表(DHT)的特征,并不直接暴露在外网,而是为Amazon Web Services(AWS)提供底层支持。目前Dynamo已经有很多实现,典型的有:Apache Cassandra,Project Voldemort,Riak。
Dynamo是采用DHT作为基本存储架构和理念(如图4所示),这个架构最大特点是能让数据在环中“存储”均匀,各存储点相互能感知(因数据需要在环内转发。以及相互之间进行故障探测,因此需要节点之间的通信),自我管理性强,因为它不需要Master主控点控制,无单点故障危险。
此外,Dynamo的主要优点是,它提供了使用3个参数(N,R,w),根据自己的需要来调整它们的实例。Dynamo支持对对象的不同版本进行记录和处理,并且可以将不同版本提供给应用,供应用自己更灵活地进行合并。对象的副本数遵循(N,R,W)的规则,N个副本,如果R个读取的一致则确定读取成功,如果W个写人成功则认为写入成功,不要求全部N个都成功完成,只要R+w>N,数据的最终一致性就可以得到保障。这里,读取比一次写多次读的系统(如HDFS)麻烦,但写入变简单了,这反映了应用的需求。
负载均衡对于Dynamo系统而言足天生的优势,因为它采用了DHT方式将数据都均匀存储到各个点了,所以没有热点,各点的数据存储量和访问压力应该都是均衡的。
图4 Dynamo架构
2.5 MapRedace技术
为了高效地利用云计算的资源,云计算采用MapReduce编程模式(如图5所示)。作为一个新的编程模型,MapReduce将所有针对海量异构数据的操作抽象为两种操作,即map和reduce。使用map函数将任务分解为适合于在单个节点上执行的计算子任务,通过调度执行处理后得到一个“值/对”集。而reduce函数则根据预先制订的规则对在map阶段得到的“值/对”集进行归并操作,得到最终分析结果。MapReduce模型最为成功之处就在于,让我们可以按照需求将针对海量异构数据的分析处理操作(无论是多么复杂)分解为任意粒度的计算子任务,并允许在多个计算节点之间灵活地调度计算以及参与计算的数据,进而达到实现计算资源和存储资源的全局最优化的管理。另外,MapReduce方法在将map任务和reduce任务分配到相应节点时,会考虑到数据的本地性(data locality),即一般会将map/reduce安排到参与数据的存放节点或附近节点来执行。
图5 MapReduce架构
3云数据管理技术分析
在新兴的云计算数据管理领域Google的BigTable,MapReduce和亚马逊的Dynamo技术针对云计算海量数据的问题和应用特点有了很多创新,综合来看未来云计算数据管理主要包括以下几个层次。其总体架构如图6所示:
图6云计算数据管理
如图6所示云计算数据管理层次分为4层,分别为:数据组织与管理,数据集成与管理,分布式并行处理,数据分析。最终实现对非确定性数据的管理与集成,为用户提供高效的查询等服务。
1)数据组织与管理:采用分布式的存储技术可用于大型的、分布式。的、对大量数据进行访问的应用,类似GFS,它运行于各种类似的普通硬件上,提供容错功能,为用户提供高可靠、高并发和高性能的数据并行存取访问。
2)数据集成与管理:针对数据的非确定性、分布异构性、海量、动态变化等特点,采用分布式数据管理技术,通过采用Bigtabe,Hbase等分布式数据库技术对大数据集进行处理、分析,向用户提供高效的服务。
3)分布式并行处理:为了高效地利用在分布式环境下的数据挖掘和处理,采用基于云计算的并行编程模式,如MapReduce,将任务自动分成多个子任务,通过映射和化简两步实现任务在大规模计算节点中的调度与分配。后台复杂的并行执行和任务调度对用户和编程人员透明。
4)数据分析:云计算的数据管理中最终需要对数据进行分析和挖掘以提供给各种应用使用,通过采用不同的数据挖掘引擎的布局及多引擎的调度策略;通过基于浅层语义分析和深层语义分析的技术,在不确定知识条件下的高效的数据挖掘,从而从大量的结构化的关系数据库中的数据、半结构化的文本、图形和图像数据中提取潜在的、事先未知的、有用的、能被人理解的数据。
4 云数据管理展望
云计算作为一个新兴技术,它和云数据管理面临着一些机遇以及挑战。“物联网”、“三网融合”、“智能电网”等应用为云计算和云数据管理带来了前所未有的机遇。与此同时随着云计算越来越流行,预计有新的应用场景出现,在云数据管理方面也会带来新的挑战。例如,可能会出现一些需要预载大量数据集(像股票价格、天气历史数据以及网上检索等)的特殊服务。从私有和公共环境中获取有用信息引起人们越来越多的注意。这样就产生新的问题:需要从结构化、半结构化或非结构的异构数据中提取出有用信息。可以看出云计算和云数据管理平台服务本身在适当场景下巨大的优势,同时还有所面临的技术难题亟待解决。可以说,云计算和云数据管理技术还有很长的路要走。
5 总结
云计算具有广阔的应用前景,云计算的数据具有海量、异构、非确定性的特点。面对云计算的云数据管理面临着巨大的机遇和挑战,本文提出采用数据组织与管理、数据集成与管理、分布式并行处理和数据分析4层的云数据管理方式也是未来面向云计算数据管理的主要方向。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:云计算和云数据管理技术
本文网址:http://www.toberp.com/html/consultation/1083972019.html