基于hadoop的多层次局部动态并行化技术研究

来源 :中国科学院研究生院 中国科学院大学 | 被引量 : 0次 | 上传用户:ansonx
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着海量数据时代的到来,能够有效的存储和处理大规模数据的平台受到越来越广泛的关注。这些平台大多利用了集群的分布式处理和节点的多核并行计算能力。其中以MapReduce编程模型为基础的处理框架尤为突出。这些平台从宏观的角度关注资源的有效使用,衡量集群的负载均衡。但是MapReduce是一个阶段并行模型,它按序执行的特点会造成某一时间点节点资源使用的不均衡,所以从微观角度看,MapReduce系统并未在任何时刻都有效地利用节点的各种资源。同时这种按序执行也对数据依赖型作业组产生影响,由于依赖作业不能提前调度,使得节点IO和CPU资源处于空闲。   目前大多数系统为克服MapReduce的严格按序执行而提出的策略主要是以数据流为基础的并行,即任务之间通过使用数据流水线而达到任务的提前执行。由于没有从资源的角度进行考虑,会造成资源使用的冲突。而且非固化的数据流会使错误恢复变得复杂。而对于依赖作业支持方面,大多数系统只是在MapReduce之上封装了一些可以表示依赖作业的接口,或是一些数据结构,但是真正MapReduce的核心调度层还是无法区分普通作业和依赖作业组。   基于大规模数据处理的重要性以及目前系统对节点资源有效使用的解决方案的不完善性,本文提出了以流水线方式为基础的局部动态并行化技术,并将该技术运用到开源的MapReduce框架badoop上。   局部动态并行化技术从两方面展开:同种任务内的并行化和数据依赖犁作业间的并行化。任务内的并行化采用的是资源流水线思想:首先将一个任务划分成具有不同资源使用倾向的子阶段,之后通过动态的改变slot的数量使得任务可以提前执行,实现同一时刻资源使用的互补。数据依赖型作业间的并行化采用的是数据流水线的思想:在两个依赖的作业之间开设一个数据缓冲池,当部分数据产生时,就可以开始调度下一个作业对应的Map任务。虽然以上两种并行化技术可以使资源互补使用,但是由于每一个子阶段执行时间的不同仍然可能会造成资源的冲突。本文通过系统的资源配置设定一些限制从而决定何时动态的启动任务或何时任务可以进入下一阶段。这些限制在任务内的并行技术中主要体现在代表资源的多种slot的设置上,在依赖作业间主要体现在根据Reduce任务执行数量变化的实时调度上。最后本文基于以上两种流水线技术总结出多阶段并行模型,从而指导并行框架的调度。   本文对并行化技术和模型进行了实现并做了实验验证。实验证明任务内的并行化技术可以使节点的资源使用率得到6%至10%的提升,执行时间获得5%到15%的平均提升。而作业间的并行化技术也使依赖作业组执行时间降低。
其他文献
随着社会经济的不断发展,人们所面临的系统越来越复杂,事物的刻画和描述常常会出现不同程度的不确定性和模糊性。利用模糊概念来表征事物在现实生活中经常出现,比如医疗上判断一
近些年来,随着各类传感技术逐渐成熟,人机交互技术的研究也获得突破性发展。在过去的几年中,如何使用廉价的设备来捕获人体运动成为了一个越来越热门的研究课题。   基于计算
随着科学技术的发展,模拟计算和仪器测绘所得到的海量数据可视化越来越成为应用的瓶颈。实时可视化研究主要包括基于GPU的可视化算法加速和并行可视化。本文以三维数据场可视
网络流量测量是网络安全管理的重要方式,大部分网络安全事件的检测都是通过网络流量采集分析完成。高速的网络链路、海量的存储数据、多样的上层应用和持续变化的网络给网络流
动态服务环境的各种异常随时会导致整个业务流程暂时无响应或服务中断,极大影响业务流程的可靠性。已有替换机制大多缺乏事务支持而适应性差,进而不能有效保证系统执行过程中
脑血流自动调节机能,是指当平均动脉压(MABP)在一定范围内波动时,通过小动脉和毛细血管平滑肌的代偿性扩张或收缩,改变脑血管阻力(CVR),使脑血流(CBF)保持相对恒的生理机能。脑血
直接体绘制是科学计算与可视化中用于显示三维数据场的一种重要方法,它为体数据场中的每个体素赋予一定的光学属性参数(如颜色、不透明度等),这一赋值过程称之为传递函数,并且通
描述逻辑是一种适合表示结构化数据的形式语言.通过将某种数据模型表示到描述逻辑,可以利用描述逻辑本身的推理机制对数据模型满足的各种性质进行推理,并为各种异构的数据模型
集成电路自发明以来,在摩尔定律作用下集成电路的设计也变得越来越复杂。为了让产品快速上市,获得更大的市场份额,基于标准单元的半定制设计方法成为了产品设计方法的首选。  
团簇结构的优化问题是一个NP问题,其主要难点在于局部极小值的个数随着原子个数的增加而呈指数增长,且局部极小值与全局最小值很接近,使算法容易陷入局部极值。其中,LJ问题和