本站提供免费毕业论文范文,硕士论文范文参考!
发布时间:2019年04月09号,星期二 快速评论
2 资源虚拟化相关技术N01知览论文网
大数据数据中心提供了大规模资源,但是为了按需分配基础设施提供的服务,我们需要研究虚拟化及其相关的技术。虚拟化是大数据的最重要特点,也是IaaS层的重要组成单元。大数据虚拟化技术可以提供的服务有:1资源定制。用户通过利用虚拟化技术来配置私有的服务器,根据指定大数据数据中心所需要的CPU数目、内存容量以及磁盘空间来实现资源的按需分配。2资源共享。通过用户对各自的虚拟机运行环境封装可以实现多用户分享数据中心资源的有效性。3资源管理。通过将服务器拆分成若干虚拟机可以减少资源的浪费并提高服务器的资源利用率。通过以上对于大数据虚拟化及相关技术特点的研究与分析可知,若要实现大数据数据中心按需服务和资源池化的虚拟化技术是其基础。在此,为了进一步满足大数据数据中心的需求,需要研究虚拟机快速部署技术以及在线迁移技术。N01知览论文网
(1)虚拟机快速部署技术N01知览论文网
传统的虚拟机部署技术由4个阶段构成:(1)创建虚拟机;(2)安装操作系统与应用程序;(3)配置主机属性;(4)启动虚拟机。但是传统的虚拟机部署技术部署时间较长,达不到大数据数据中心的服务需求,虽然我们可以采用提高硬件配置来提高虚拟机的性能,但这种方法很容易造成资源的浪费,而且该方法也很不现实。因此虚拟模板技术随之而产生,虚拟机虚拟设备进行了预配置,并对虚拟机模板预装了操作系统与应用软件,通过将虚拟机模板技术应用至大数据数据平台[59],可以简化虚拟机的部署过程,从而可以有效的减少虚拟机的部署时间,但是虚拟模板技术无法有效满足大数据数据中心减少虚拟机的部署时间和空间需求。一方面是因为没有内存中没有加载应用程序,使得虚拟机模板中的虚拟机需要在加载内存镜像或者启动后才会为用户可提供可靠的服务;另一方面,虚拟机模板中的虚拟机需要复制的模板文件较大时,不可忽视复制的时间开销。因此,许多业界学者采用基于fork思想的虚拟机部署方式[60-61]。基于fork思想的虚拟机部署方式受到fork原语操作系统的启发,大量子虚拟机可以利用父虚拟机迅速克隆出来。Potemkin项目在虚拟机fork技术的相关研究工作中实现了虚拟机fork技术[60],大数据数据中心虚拟机的部署或删除可在1s内完成,但要求在相同的物理机上部署子虚拟机和父虚拟机。在2011年Lagar-Cavilla等人研究了将虚拟机fork技术应用至分布式的并行环境下[61],该技术使得32台虚拟机的部署在1s内完成。综上所述可知,虚拟机fork即时(on-demand)部署技术可以提高部署的效率,但是不能持久化保存部署的子虚拟机。N01知览论文网
(2)虚拟机在线迁移技术N01知览论文网
在运行状态下将虚拟机从一台物理机移动到另一台物理机,即虚拟机在线迁移技术[63]。对于大数据平台虚拟机在线迁移技术具有以下3方的重要作用:(1)提高系统可靠性。(2)有利于负载均衡。(3)有利于设计节能方案。除此此外,在不影响服务质量的情况下大数据平台可以管理并且优化数据中心,同时虚拟机的在线迁移对用户是透明的。N01知览论文网
由Clark等人于2005年提出的在线迁移技术[62],通过同步迁移前后的虚拟机的状态,从而将虚拟机从一台物理机移动到另一台物理机。Hirofuchi等人为了在数据中心之间完成虚拟机在线迁移,采用了一种在WAN环境下的迁移方法[63]。WAN环境下的迁移方法在保证虚拟机数据一致性的前提下,尽可能加快迁移速度以及提高虚拟机的输入/输出性能。Remus系统利用虚拟机在线迁移技术设计了虚拟机在线备份方法[64],使得原始虚拟机发生错误时可以立即切换到备份的虚拟机上,不影响系统运行任务的执行,从而提高了系统的稳定性和可靠性。N01知览论文网
3、海量数据处理平台N01知览论文网
(1)海量数据存储技术N01知览论文网
大数据中海量数据的存储既要保证文件系统的稳定性以及可靠性,又考虑存储系统的输入/输出性能。2003年Ghemawat等人根据Google应用的特点,为Google设计了的GFS(Google File System)[65],GFS对其应用环境做出了6点假设:①文件读操作以大规模的流式读和小规模的随机读构成;②需要存储大量GB级甚至TB级的大文件;③系统架设在容易失效的硬件平台上;④系统需要有效处理并发的追加写操作;⑤高持续输入/输出带宽比低传输延迟重要;⑥文件具有一次写多次读的特点。N01知览论文网
GFS中分布在计算节点的本地硬盘的一个大文件被划分成若干固定大小(如64MB)的数据块,同时每一个数据块都保存有多个副本来保证数据的可靠性,除此之外,所有副本元以及数据文件由管理节点管理。GFS的执行流程如图2.8所示。N01知览论文网
N01知览论文网
图2.8 GFS执行流程N01知览论文网
N01知览论文网
基于GFS开发的分布式存储系统Bigtable[66],Bigtable将提高系统的可扩展性、适用性以及可用性作为目标,其功能与分布式数据库类似,用以存储半结构化或者结构化数据,为Google公司的部分应用提供了较高质量数据的查询与存储服务。在数据模型方面,Bigtable以行名、列名、时间戳建立索引,并且建立的索引表中由无结构的字节数组表示数据项。在数据管理方面,Bigtable由分布式Chubby服务负责数据一致性的管理,并将一整张数据表拆分成许多存储于GFS的子表。从而保证Bigtable能够在多种不同应用环境下的可靠运行。在Bigtable中存储网页如图2.9所示,其中为时间戳。N01知览论文网
N01知览论文网
图2.9 Bigtable的存储方式N01知览论文网
由于Bigtable存在单点失效以及性能的问题。为此,在2007年DeCandia等人提出基于P2P结构的Dynamo存储系统[67],并将基于P2P结构的Dynamo存储系统应用于Amazon的数据存储平台。Dynamo借助于P2P技术的特点,允许使用者可以动态调整大数据集群的规模大小。除此之外,在可靠性方面,基于P2P结构的Dynamo存储系统利用文件副本应对节点失效问题。在可用性方面,基于P2P结构的Dynamo存储系统采用分布式表结构减少响应时间。为了在不会影响系统性能的前提下保证副本的一致性,基于P2P结构的Dynamo系统设计了一致性模型,来提高系统的性能,减少其响应时间。N01知览论文网
(2)数据处理技术与编程模型N01知览论文网
PaaS平台不仅要实现海量数据的存储,而且要提供面向海量数据的分析处理功能。由于PaaS平台部署于大规模硬件资源上,所以海量数据的分析处理需要编程模型支持屏蔽底层细节、规模扩展,并且要求其抽象处理过程到达简单有效的目的。N01知览论文网
Google提出的并行程序编程MapReduce模型运行于GFS之上。由大量Reduce以及Map任务组成一个MapReduce作业。本文根据两类任务的特点把数据处理过程划分成Reduce与Map两个阶段分别来说明:1在Reduce阶段,Reduce任务读取并合并多个Map任务的中间结果;2在Map阶段,Map任务读取输入文件块并且对文件块进行并行分析处理,在此过程中将处理的结果保存在Map节点中。MapReduce模型可以简化大规模数据处理的难度:1由于MapReduce会重新执行异常状态任务的同时监测任务执行状态,所以IT工作人员不需考虑任务失败问题;2在Reduce读取Map中间结果的阶段发生MapReduce中的数据同步由编程框架自动控制,使得数据同步问题得到简化;3Map/Reduce在处理大规模数据时任务的数目远多于计算节点的数目[38],有助于保持计算节点负载的均衡性;4Reduce任务与Map任务两者都可以并发执行,并可以通过增加计算节点数量来加快对数据的处理速度。其中,Map/Reduce的执行过程如图2.10所示。N01知览论文网
N01知览论文网
图2.10 Map/Reduce的执行过程N01知览论文网
综上所述,MapReduce具有诸多优点,但仍具有一些缺陷:①MapReduce在实现迭代算法时效率较低;②MapReduce在执行多数据集的交运算时效率不高;③MapReduce灵活性低。基于上述缺陷,MapReduce被Sawzall语言[68]和Pig语言[69]封装后可自动完成数据查询操作到MapReduce的映射;Yang等人通过加入Merge阶段实现多数据集的交操作,设计了Map-Reduce-Merge框架[70],并在此基础上了构建OLAP数据立方体[71];Ekanayake等人设计的Twister平台[72],使得MapReduce有效支持迭代操作;文献[73,74]将MapRedcue应用到并行求解如并行遗传等算法的大规模组合优化问题中。N01知览论文网
由于MapReduce的灵活性低,为此在2010年Isard等人采用了基于有向无环图(DAG,Directed Acyclic Graph)的并行模型设计Dryad框架[75],Dryad的任务模型如图2.11所示。Dryad可以形象的表示出作业内的数据流。其中,图中的每一个节点表示需要执行的子任务,每一个数据处理作业都由DAG表示,并且2个子任务之间的通信由节点之间的边表示。Yu等人在此基础上设计了和.NET平台无缝结合的DryadLINQ数据查询语言[76],并且对Azure平台[77]上的数据利用Dryad模型进行查询处理。N01知览论文网
N01知览论文网
图2.11 Dryad的任务模型N01知览论文网
4、资源管理与调度技术N01知览论文网
大规模性的海量数据处理平台为资源的调度与管理带来问题。提高Dryad、MapReduce等PaaS层海量数据处理平台的性能才能解决这些问题,因此,研究有效的资源管理与调度技术势在必行。N01知览论文网
(1)副本管理技术N01知览论文网
有效的副本策略不但能优化作业完成时间,还可以降低数据丢失的风险,并且PaaS层保证数据可靠性的副本机制。目前,将默认的文件系统部署至传统大数据数据网络拓扑中心,这就是Hadoop平台采用机架敏感的副本放置策略。;例如以放置5个文件副本为例,采用机架敏感的副本放置策略将一个置于不同机架,另4个文件副本置于同一机架,这样的放置就是考虑由于同一机架的计算节点间网络带宽高。除此之外,文件副本的放置还与应用有关,Eltabakh等人提出了一种灵活的数据放置策略CoHadoop[78],数据放置策略CoHadoop规定用户可以根据应用需求自定义文件块的存放位置,使得在一定程度上减少了节点之间的数据传输开销,并且可以将需要协同处理的数据分布在相同的节点上。但是目前PaaS层服务的副本调度大多局限于单数据中心,使其需要考虑多数据中心的数据管理以及优化的管理策略。郑湃等人提出的分别针对数据依赖关系、跨数据中心数据传输和全局负载均衡等3个目标对数据布局方案进行优化求解的三阶段数据布局策略[79],虽然三阶段数据布局策略对多数据中心间的数据起到优化管理的作用,但是对于副本管理策略的讨论不够深入。因此,在多数据中心环境下去研究一致性更新维护机制以及副本的选择放置成为首要问题。N01知览论文网
(2)任务调度算法N01知览论文网
以数据密集型作业为主的PaaS层海量数据处理,其执行能力通常受到输入/输出带宽的影响。但是计算集群中的急缺的资源是网络带宽:①IaaS层部署的虚拟机集群共享有限的网络带宽;②考虑到成本因素,大数据数据中心通常很少采用高带宽的网络设备;③大量带宽资源被海量数据的读/写操作占用了。综上所述,PaaS层服务的任务调度需要将网络带宽的因素考虑进去。可以将任务调度到输入数据所在的计算节点来减少任务执行过程中的网络传输开销,需要对面向数据本地性的任务调度算法进行研究。为了保证数据的本地性以及算法的简单性,Hadoop以“尽力而为”的策略,但是实际环境中不能保证较高的数据本地性,Hadoop平台并没有做到全局优化。在2010年Fischer等人为MapReduce任务调度建立数学模型[80]来达到全局优化的效果,并提出了HTA(Hadoop Task Assignment)问题。如图2.12所示,HTA问题为一个变形的二部图匹配,其目标是使各计算节点负载均衡,并将任务分配到计算节点,其中与分别表示计算的节点和任务,虚边表示没有的输入数据,实边表示有的输入数据,调度开销分别用和来表示。该研究设计了MaxCover-BalAssign算法解决该问题,并且证明了HTA问题可利用3-SAT问题来说明其是NP完全的。虽然理论上MaxCover-BalAssign算法接近最优解,但其在大规模计算中时间复杂度过高而无法使用。为了解决MaxCover-BalAssign算法在大规模计算中时间复杂度过高而无法使用,Jin等人基于“先均匀分配再均衡负载”的思想设计了BAR调度算法[81],BAR算法在得到优于MaxCover-BalAssign算法的调度结果的同时,可以快速的求解大规模HTA问题。N01知览论文网
N01知览论文网
图2.12 HTA的问题模型N01知览论文网
PaaS层的作业调度器在考虑作业之间公平调度的同时,需要保证数据的本地性。PaaS层服务的工作负载中既包括长期作业,同时也包括即时作业。为了使其快速响应,并且能够及时为即时作业分配资源,使得研究公平调度算法十分重要。因为作业公平性以及数据本地性同时满足不可能,所以在Max-Min公平调度算法的基础上,Zaharia等人为了达到较高的数据本地性,通过推迟调度一部分作业并等待合适的计算节点,设计了延迟调度算法[82]。但是延迟调度算法延迟策略在等待开销较大的情况下会影响作业的完成时间。Isard等人为了折衷作业公平性以及数据本地性设计了应用于Microsoft的Azure平台的基于最小代价流的调度模型[83]。如图2.13所示,作业i的子任务j通过来表示,任务被调度到计算节点、数据中心、机架和不被调度分别由和R,C,X,U的边表示,其每条边需要根据集群状态实时更新权值,并且带有权值。当系统状态发生改变时,调度器做出调度决策,并对调度图求解出最小代价流。全局优化的调度结果虽然可以通过该方法来求解出,但是计算开销将在图的规模很大时严重影响系统性能。N01知览论文网
N01知览论文网
图2.13 Quincy的调度模型N01知览论文网