面向海量数据处理领域的云计算及其关键技术研究任崇广.docx
- 文档编号:25211375
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:101
- 大小:3.13MB
面向海量数据处理领域的云计算及其关键技术研究任崇广.docx
《面向海量数据处理领域的云计算及其关键技术研究任崇广.docx》由会员分享,可在线阅读,更多相关《面向海量数据处理领域的云计算及其关键技术研究任崇广.docx(101页珍藏版)》请在冰豆网上搜索。
面向海量数据处理领域的云计算及其关键技术研究任崇广
目录
1绪论2
1.1课题的背景及研究意义3
1.2国内外研究现状6
1.2.1海量数据处理6
1.2.2云计算研究现状8
1.2.3海量小文件处理9
1.3研究内容及主要贡献11
1.3.1研究内容11
1.3.2论文组织12
1.3.3主要贡献13
2海量数据处理技术分析15
2.1引言15
2.2海量数据的产生和特点15
2.3数据统合处理机制18
2.4云计算环境下海量数据处理21
2.4.1云计算相关介绍21
2.4.2云计算与海量数据处理24
2.5云计算海量数据处理关键技术26
2.5.1虚拟化技术27
2.5.2存储资源分配28
2.5.3编程方式28
2.5.4异构数据访问29
2.5.5数据存储技术29
2.6本章小结32
3云计算环境下海量小文件处理模型C-MSFPM33
3.1引言33
3.1.1问题描述34
3.1.2研究内容36
3.2云平台体系结构36
3.2.1基本体系结构36
3.2.2主流云计算平台38
3.3C-MSFPM模型43
3.3.1云环境下小文件类别划分及预处理策略43
3.3.2海量小文件索引结构48
3.3.3基于就近原则及权值相似度的文件合并算法50
3.4本章小结51
4基于C-MSFPM的数据处理52
4.1引言52
4.2基于XML和多Value的改进MapReduce处理架构52
4.2.1MapReduce编程模型52
4.2.2XML的数据模型57
4.2.3改进的MapReduce架构算法60
4.3基于内容依賴的数据査询处理62
4.3.1PDF格式文档62
4.3.2复杂任务查询处理66
4.3.3实验分析68
4.4基于云平台的车载信息数据处理系统71
4.4.1处理架构72
4.4.2数据传输协议75
4.4.3数据传输分层模型76
4.4.4实验结果及讨论78
4.5本章小结80
5海量数据存储机制研究81
5.1引言81
5.2云存储技术概述82
5.3基于改进遗传算法的存储任务调度机制85
5.3.1遗传算法85
5.3.2改进型遗传算法的云存储任务调度87
5.3.3仿真实验与分析92
5.4基于改进动态规划的云存储机制96
5.4.1动态规划算法原理96
5.4.2改进的动态规划的云存储数据分配97
5.4.3实验与分析99
5.5本章小结101
1绪论
随着信息时代的到来,在许多科学领域中,数据信息呈现出爆炸式的增长。
根据IDC(InternationalDataCorporation)的调查显示,截止到2011年,全球信息总量为1.8ZB(ZettaBytes)。
IDC预计,到下一个十年(2020年),全球所有IT部门拥有服务器的总量将会比目前多出10倍,所管理的数据将会多出50倍。
对于这些大规模、多态性、分布式、非(半)结构化等特性的海量数据,如何对其进行有效地分析与处理,并且从中挖掘出有价值的信息,实现数据统一管理,以使其发挥出最大的效益,是目前实际应用中迫切需要解决的问题。
传统的海量数据处理方法主要是釆用并行计算的方式。
当前大型并行机主要有:
单指令多数据流机SMD(Single-InstructionMultiple-Data)、对称多处理机SMP(SymmetricMulti-Processing)、并行向量处理机PVP(ParallelVectorProcessor)工作站机群COW(ClusterOfWorkstation)分布共享存储多处理机DSM(DistributedSharedMemory)以及大规模并行处理机MPP(MassivelyParallelProcessing)。
传统的并行处理方式主要依托高性能计算机,硬件成本过高、并行程序编写困难,一般用户很难操作。
其应用范围也非常有限。
目前,这种处理方式主要应用于科学计算方面,例如,军事、气象、生物、核科学、高能物理等领域。
云计算(CloudComputing)是近年来出现的一个高热度名词,本质上它并不是一个全新的技术。
云计算是在分布式计算(DistributedComputing)、并行计算(ParallelComputing)效用计算(UtilityComputing)以及虚拟化(Virtualization)等技术上发展出来的一个新的技术模式。
云计算技术拥有分布式计算,超大规模,虚拟化,高可靠性,高弹性,可扩展,按需服务等特点,能够为海量数据处理提供更为高效的分析以及更好的计算能力。
目前,云计算平台主要有亚马逊云计算平台、谷歌云计算平台、IBM“蓝云”计算平台、Eucalyptus、Hadoop等。
其中,由于Hadoop在海量数据处理方面具有非常优越旳性能,因此,近几年其已成为最为流行的云计算开发平台之一。
本文针对海量数据处理,海量小文件处理以及海量数据存储中目前存在的问题,结合云计算技术中的虚拟化技术、分布式计算技术,以及分布式存储技术等相关理论与技术,构建了云计算环境下的海量小文件处理模型,研究和建立了云计算环境下PDF格式文档内容映射查询机制与海量数据存储机制,以期实现高速可靠的数据访问,及对海量数据进行高效的组织与管理,从而降低海量信息处理应用开发和使用的复杂性,提升数据的统一管理和海量信息的共享。
1.1课题的背景及研究意义
Google首席执行官埃里克?
施密特(EricSchmidt)在2006年全球搜索引擎大会上(SESSanJose2006)首次提出云计算(CloudComputing)的概念。
随着Google云计算核心技术GFS、MapReduce和BigTable的公开,越来越多的企业认同并广泛应用了云计算技术。
云计算正在全球掀起一场云革命:
无论是微软、Oracle、SAP及IBM等国际知名的软件业巨头,还是亚马逊、Salesforce以及国内的阿里巴巴、中移动、浪潮企业等服务厂商,均陆续推出了基于云计算技术的产品和服务。
目前,云计算技术己成为IT与相关领域最受关注和发展最快的技术。
云计算是多种技术融合的产物,由于其商业实现及研究成果不同的侧重,因此,针对云计算的定义目前有很多种形式。
中国网格计算、云计算专家刘鹏:
云计算将计算任务发布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和各种软件服务。
美国国家标准与技术研究院(NIST):
云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。
原文:
Cloudcomputingisamode]forenablingubiquitous,convenient,on-demandnetworkaccesstoasharedpoolofconfigurablecomputingresources(e.g.,networks,servers,storage,applications,andservices)thatcanberapidlyprovisionedandreleasedwithminimalmanagementeffortorserviceproviderinteraction''^^
“网格之父”美国Argonne国家实验室的资深科学家Foster这样定义云计算:
云计算是由规模经济拖动,为互联网上的用户提供一组抽象的,虚拟化的,动态可扩展的,可管理的计算资源能力、存储能力、平台和服务的一种大规模分布式计算的聚合体。
对于云计算的分类,按照云计算部署方式,可分为公共云(PublicCloud)、私有云(PrivateCloud)和混合云(HybridCloud)三类,如图1.1所示。
按服务类型可分为基础设施即服务(InfrastructureasaService,IaaS)、平台即服务(PlatformasaService,PaaS)、软件即服务(SoftwareasaService,SaaS)。
具体如图1.2所示。
图1.1云计算按部署方式分类图
.图1.2云计算按服务类型分类图
近十几年来,随着科学技术的发展,计算机应用系统的不断发展和完善,在各个领域产生了大量的数据,例如,美国纽约证券交易所每天会产生大约1TB(TeraByte)的交易数据,互联网档案馆(TheIniemetAichive)存储着约2PB数据,并以每月至少20TB的速度增长。
Facebook需要管理超过600亿张照片数据,并需应对每周20TB的新照片数据的存储。
2006年5月的统计数据表明,美国国家航空航天局(NASA,NationalAeronauticsandSpaceAdministration)的地球科学事业(ESE,EarthScienceEnterprise)计划中已存有超过4.9PB(1PB=1024TB)的各类数据,包括9个航天器及外场试验中的22个仪器观测数据,产品类型多达1786个,每天新增4.5TB的数据,每天分发2.5TB数据给各类用户。
在互联网快速发展的背景下,特别是Web2.0,网络上的数据内容呈几何级的增长,而其中增长最快并且最容易给技术架构带来挑战的就是数目庞大的小文件。
随着数据的急剧增长,对存储资源、计算机系统、网络资源等都提出了极高的性能要求,给以往的数据处理技术带来了的挑战。
IBM在2011年推出SmartCloud云计算平台,采用Hadoop框架,可对大量无序化的数据进行分析并将其可视化。
政府服务一直是云服务所不能涉及的领域,其特殊性使得政府使用云服务时需慎之又慎。
Amazon通过推出的AWS(AmazonWebServices)GovCloud使政府能够放心的、安全的享受云服务。
NASA已经在使用AWSGovCloud的云服务,还有超过100家的政府部门已经在某些地方使用AWSGovCloud。
谷歌是最大的云计算使用者,它的搜索引擎建立在200多个地点、超过百万台服务器的支撑之上,这些基础设施的数量目前正在快速增长。
北京理工大学在分布式计算实验室和多元信息系统国防重点学科实验室等的基础上专门组建海量信息处理与云计算实验室。
该实验室以海量文字信息处理及云计算方向为核心,涵盖其在网络信息处理等领域的应用。
海量数据的处理和应用研究已向分布式,高性能并行处理方向发展,数据规模巨大(在TB级以上)的海量信息处理系统也随之出现。
如何对海量数据进行快速及有效的分析处理,是一个非常有实用价值的研究领域。
1.2国内外研究现状
1.2.1海量数据处理
目前,海量数据处理是一个非常活跃的研究方向,众多学者们在这个方向上进行了广泛而深入的研究。
所谓数据处理是指对各种类型的数据进行收集、存储、分类、计算、加工、检索和传输的过程,也就是如何快速地从这些海量数据中抽取出关键的信息,然后提供给用户随着计算机硬件和软件技术的不断发展,数据处理技术也随之不断前进和创新。
将大量数据分散到多个节点上,将计算并行化,利用多机的计算资源,从而加快数据处理的速度。
目前,这种并行计算的模型主要有两种:
高性能计算的MPI技术和Dryad并行计算模型。
MPI即消息传递接口(MessagePassingInterface),是一种编程接口标准,而不是一种具体的编程语言。
MPI是一种工业标准的API规范,专为在多处理器计算机、计算机集群和超级计算机上进行高性能计算而设计。
该标准是由大量计算机供应商和软件开发商于1994年共同设计完成。
MPI作为目前国际上最流行的并行编程环境之一,因其良好的可移植性和易用性、完备的异步通信功能等优点,而在机群高性能计算中得到广泛应用。
在基于MPI编程模型中,计算任务是由一个或多个彼此间通过调用库函数进行消息收、发通信的进程所组成。
绝大部分实现在程序初始化时生成一组固定的通信进程。
这些进程在不同的节点上运行(通常一个处理器一个进程),执行着相同或不同的程序,以点对点通信或者集合通信的方式进行进程间交互,共同协作完成同一个计算任务。
以任务之间的消息传递驱动的MPI,其进行大规模数据处理的基本思路就是,将任务划分成为可以独立完成的不同计算部分,将每个计算部分需要处理的数据分发到相应的计算节点分别进行计算,计算完成后各个节将各自的结果集中到主计算节点进行结果的最终汇总。
Dryad是微软在2007年提出的数据并行计算模型。
目前已经在MicrosoftAd’Center投入使用。
Dryad通过将计算任务移动到相应的数据存储节点或靠近的节点,让计算就地或者就近完成,从而减轻网络上传输的压力。
在Dryad中,每个计算任务被表示成一个有向无环图(DirectedAcyclicGraph,DAG),计算任务按照有向无环图的方向按照依赖关系执行。
DAG相对于两阶段式的MapReduce,可以表达更加丰富的计算类型;同时,它支持在子任务之间通过TCP管道Shared-memoryFIFO(共享内存先进先出)进行结果传递,尽量避免一些不必要的磁盘输入输出,加速计算的执行。
MapReduce是谷歌公司在2004年提出的应用于大规模集群进行大规模数据处理的并行计算模型。
Map(映射)和Reduce(化简)的概念,以及他们的主要思想,都来自于函数式语言。
在一个计算任务中,计算被抽象并简化成为两个阶段:
Map
和Reduce。
Map阶段,系统调用用户提供的Map函数,完成从一组键值到新一组键值的映射计算;而Reduce阶段,用户指定的Reduce函数则被用来将所有Map计算完成的结果进行一次化简归约。
与MPI有所不同的是,MapReduce是通过将计算(Map或者Reduce)分发到相应的数据存储节点或靠近的节点,让计算(Map或者Reduce)在数据存储节点就地或者就近完成,尽可能减轻大量数据在网络上传输所产生的压力。
国内外很多学者提出了很多方法来提高海量数据处理的效率。
2005年,刘丽艳针对中国数字化虚拟人计划(ChineseDigitizedVirtualHumanProject)所研究的海量数字人数据集的处理,引入了数据网格(DataGrid)的思想,研究了基于网格的海量数据处理的若干关键技术,为目前许多领域的数据处理提供了一种新的解决思路和方法。
对于海量多媒体数据,Zhuang研究了海量多媒体数据的高效查询与索引技术,提出了基于复合距离转换的高维索引(CompositeDistanceTransformation,CDT)和基于对称编码的双距离树索引(Symmetrical-Encoding-basedDualDistance,EDD-Tree)。
Chan和Stolfo以数据粒分解为基础,将海量数据集拆分成为一个个可以装入内存的分区来处理,但其正确率比直接对全部数据进行处理有所降低。
Qin和Wang等给出了一种基于粗糙集的海量数据处理方法,该方法将类分布链表存储在磁盘,串行方法处理海量数据。
Prodromidis等在staking分类器组合框架的基础上提出了Meta-leaming学习模型。
Wu提出了通过计算各子数据站点的权值,来合并规则站点的方法,这些方法在一定程度上提高了海量数据的处理效率。
1.2.2云计算研究现状
云计算系统能够对大数据集进行处理与分析,并向用户提供高效的服务。
数据管理技术必须能够高效地管理大数据集。
其次,如何在规模巨大的数据中找到特定的数据,也是云计算数据管理技术所必须解决的问题。
云计算因为其弹性可伸缩的计算模式,受到了以IBM、亚马逊(Amazon)、Google等为代表的众多高科技公司的重视,成为各公司应对海量信息处理的利器。
亚马逊研发了弹性计算云(ElastieComputeCloud,EC2)为企业提供计算服务,IBM推出了蓝云(BlueCloud)[3i]计划,微软推出了AZure的云计算基础平台。
雅虎(Yahoo)公司也是云计算的实践者,它参与赞助了Apache自由软件基金会的云计算项目Hadoop。
Hadoop采纳了Google存储和管理海量数据的思想,是Apache公司提供的一个开源云计算平台,主要由分布式文件系统HDFS,MapReduce以及HBase组成。
其中HDFS是GFS的开源实现,MapReduce是GoogleMapReduce的开源实现,HBase是BigTable的开源实现。
Hadoop作为一个开源框架对大数据的支持正日益吸引IT主管的目光。
Hadoop在可伸缩性,健壮性,计算性能和成本上具有很好的优势,同时它是免费开源旳,所以成为了当前互联网企业主流的大数据分析平台。
云计算因其节省成本,高计算能力等优点,得到很多公司的大力推广,因此发展非常迅猛。
在此基础上,互联网中便提取出了很多以云命名的概念,如云存储,云安全,云操作系统等等,这些都是云计算在专业领域方面的应用。
云是一个规模极其庞大的资源池,池中有极其丰富的计算资源、存储资源。
云数据库也是有海量的数据库群所构成,而这些数据库一部分是固定存储在云中,还有一部分是由中小服务商的服务器构成,需合理安全的把存储任务分配到这些云数据库中,以使云存储系统达到负载均衡。
云计算的特点是对海量的数据存储、读取后进行大量的分析,数据的读操作频率远大于数据的更新频率,云中的数据管理是一种读优化的数据管理。
因此,云系统的数据管理往往采用数据库领域中列存储的数据管理模式,将表按列划分后存储。
云计算的数据管理技术中最著名的是谷歌提出的BigTable数据管理技术。
对于釆用列存储的方式管理数据,如何提高数据的更新速率以及进一步提高随机读速率是未来的数据管理技术必须解决的问题。
随着国内外云计算应用及研究的不断推进,其研究的技术要点也日益丰富,主要包括:
虚拟化技术,云计算存储结构研究,云数据管理的研究,云编程模式的演示,云网络的研究,云安全的研究以及云应用的研究等。
虚拟化是实现云计算的最重要的技术基础,目前,云计算中普遍使用了三种虚拟机技术:
VMware开发设计的VMwareInfrastructure,Xensource管理的Xen,以及以色列开源组织提出的KVM。
国内外学者对云计算的关键技术和具体应用进行了大量的研究。
陈海波[33]研究了云计算平台可信性增强技术,从计算机硬件,操作系统与应用级对计算机系统可信性的增强着手研究,提高云计算平台的可用性,可维护性,可信性,安全性与容错性等。
Pearson针对用户和企业隐私信息常被泄露的问题提出了云计算服务设计过程中设计原则。
Boulon设计实现了大规模数据监测系统Chukwa、该系统是建立在Hadoop上的数据收集系统,用以监测和分析大规模分布式系统。
Moretti提供了一个抽象实例All-PairS编程模型,该模型可以使用与数据密集型的科学应用。
而Liu提出了GridBatch系统,该系统可以解决云基础设施环境下达规模数据批处理问题。
针对传统分布式环境下遥感影像等空间数据存储与管理技术的不足,康俊锋整合己有云平台技术,结合高分辨率遥感影像应用的特点,设计云计算环境下高分辨率遥感影像存储模型(C-RSM)与管理平台(C-RSMP)及在此之上构建的高性能计算服务,对高分辨率(高空间分辨率,高光谱分辨率,高时间分辨率)遥感影像的进行处理。
1.2.3海量小文件处理
由于传统的文件系统对小文件处理的低效,互联网应用只能构建特定的存储系统以满足其在低延迟、一致性和结构化数据方面的要求。
针对海量数据处理中的海量小文件处理,Facebook研发了定制化分布式存储系统Haystack_来存储百亿级别的图片文件;Google使用BigTable系统来为网页索引、Google地球图片和Gmail提供存储支持;雅虎通过PNUTS(分布式数据存储平台)来为其Web应用平台提供数据服务Amazon则研发了Dynamo系统来为其电子商务的购物车应用提供服务。
上述的定制化系统都经历了实践的检验,并被证明是能够有效的支持数以亿计的小对象或者是结构化数据。
随着互联网信息量呈现出的爆炸性增长,海量小文件处理的应用需求,文本分类已经成为信息检索、数据挖掘等领域的关键技术。
文本分类是数据挖掘中的一项非常重要的技术,是指将给定的文档集中的每一文档自动归类于预先定义的一个或几个类别中。
文本自动分类技术是处理大规模信息的重要技术手段之一,能够自主,有效地处理互联网上的海量信息,尤其对于海量小文件的处理,分类显得格外重要。
美国的高校如斯坦福,麻省理工学院,以及卡内基梅隆等都已经在文本分类方面取得了一定的成果。
加拿大多伦多大学电子与计算机工程系,微软亚洲研究院的自然语言计算组等也都设有专门的文本分类研究分支机构。
我国其中有具有代表性的有上海交通大学设计的基于神经网络优化算法的中文文本自动分类系统[M,清华大学的文本自动分类系统等。
早期的文本分类主要是基于知识工程(KnowledgeEngineering,KE),通过手工定义一些规则来进行分类,显然这种方法费时费力,效率低,并且需要有较好的专业领域知识。
到上个世纪九十年代,随着网络的迅猛发展和机器学习的兴起,形成了各种文本自动分类(AutomaticTextCategorization,ATC)技术。
这类方法是基于统计的方法,其基本思路是先搜集一些与待分类文本同处一个领域的文档作为训练集,并由专家进行人工分类,保证分类的准确性,然后分析这些己经分好类的文本,从中挖掘关键词和类之间的联系,最后再利用这些学到的知识对文本分类。
这种方法具有较好的理论基础,简单的实现机制,以及较好的文档分类质量等优点,目前实用的分类系统基本上都是采用这种分类。
Liu结合网络地理信息系统(WebGIS)的特点提出了解决HDFS小文件存储的方案在WebGIS中,数据被切分成KB的小文件存储在分布式文件系统中,以使浏览器和服务器之间传输的数据量尽可能地少。
针对分布式文件系统,结合WebGIS的应用模式,该论文提出了小文件优化策略。
该策略通过将小文件合并为大文件来有效降低文件的数目,并为这些小文件建立索引以便对小文件进行存取。
Dong针对Bluesky系统的特点提出了解决HDFS小文件存储的方案。
Bluesky是中国电子教学共享系统,里面的PPT文件和视频均存放在HDFS上。
当用户请求某页PPT时,其他相关的PPT可能在接下来的时间内也会被查看,因而文件的访问具有相关性和本地性。
索引文件预取是当用户访问某个文件时,该文件所在的block对应的索引文件被加载到内存中。
数据文件预取是用户访问某个文件时,将该文件所在课件中的所有文件加载到内存中,这样,如果用户继续访问其他文件,速度会明显提高。
小文件处理模块的设计思想是,先将很多小文件合并成一个大文件,然后为这些小文件建立索引,以便进行快速存取和访问。
在原有处理基础上添加一个小文件处理模块,当一个文件到达时,判断该文件是否属于小文件,如果是,则交给小文件处理模块处理。
否则,交给通用文件处理模块处理。
1.3研究内容及主要贡献
1.3.1研究内容
针对海量数据处理中存在的问题,本文以海量数据为研究对象,深入研究了云计算的相关理论,并结合有关前沿思想,突破了云计算在海量数据处理中的若千关键技术,建立了一套行之有效的海量数据分析方法。
并在一些海量数据具体问题上开展研究,提出了海量小文件处理模型和改进算法,并将研究成果应用于实际项目中。
本论文从海量数据的组织与管理,海量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 海量 数据处理 领域 计算 及其 关键技术 研究 任崇广