Spark数据处理平台中资源动态分配技术研究
发布时间:2017-10-03 18:13
本文关键词:Spark数据处理平台中资源动态分配技术研究
更多相关文章: 大数据 Spark 资源动态分配 蚁群算法 分布式内存计算
【摘要】:Spark海量数据处理平台是大数据处理领域的最新技术进展,该平台提出新的数据表达模型RDD,引入内存计算引擎与数据复用技术,通过基于内存的RDD数据存储与处理,提升海量数据处理应用的执行效率。既有Spark平台采用粗粒度资源动态分配技术,仅针对CPU资源进行资源动态分配,且缺乏任务容器级的资源调整方法,无法在任务资源需求非对称性场景下进行精细化资源动态分配。针对上述问题,本文提出面向Spark平台的CPU与内存资源协同动态分配技术。该技术的核心思想是以任务执行器为粒度,根据任务执行器中任务的CPU及内存资源的使用特征,动态调整任务执行器的CPU和内存资源分配量,并通过多任务执行器间资源的组合优化调度,充分利用Spark平台的CPU与内存资源,提升平台的应用吞吐率。本文的主要贡献包括:1)任务执行器资源使用均衡-饱和度定义。资源使用均衡-饱和度是对任务执行器资源使用效率的量化评价指标,是进行资源分配的基础依据。资源使用均衡-饱和度综合刻画了任务执行器的CPU和内存资源的利用率以及这两类资源利用率的差距。在Spark平台中,较高的资源使用均衡-饱和度表征任务执行器同时具有较好的CPU和内存资源利用效率。2)基于任务执行器资源使用均衡-饱和度评估的资源动态调整决策模型。根据资源使用均衡-饱和度定义了任务执行器资源动态调整触发条件。资源动态决策模型针对具有资源动态调整需求的任务执行器,设计三级资源调整策略,分别通过改变任务并行度、改变任务CPU资源需求量、重分配任务执行器资源来实现资源的动态调整,减少资源碎片产生。3)基于蚁群算法的任务执行器资源动态分配方法。资源动态方法是对任务执行器资源需求与平台可用资源进行组合分配,以实现平台资源最大化利用。任务执行器资源动态分配中,存在任务执行器追加CPU资源需求、重启任务执行器和新增任务执行器三种资源需求。用任务执行器在节点上的资源收益定义蚁群算法中的路径,将资源组合分配问题映射成蚁群算法的收益函数。基于蚁群算法实现的任务执行器资源动态分配方法,能够识别三种不同资源请求,并通过CPU与内存资源协同调度,实现资源最大化分配。4)综合本文的研究成果,基于Spark平台既有资源分配框架Mesos,实现了基于任务执行器资源使用均衡-饱和度评估的资源动态分配原型系统DRSpark。DRSpark整合了上述资源使用均衡-饱和度评估与资源动态分配的相关技术。5)对DRSpark进行了性能分析,性能分析结果表明,与Standalone模式、YARN模式以及Mesos模式相比,平台任务吞吐率最大提高了71.14%,平均提升了32.48%;应用平均周转时间最大缩短了37.64%,平均缩短了23.71%。
【关键词】:大数据 Spark 资源动态分配 蚁群算法 分布式内存计算
【学位授予单位】:北京工业大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP311.13
【目录】:
- 摘要4-6
- Abstract6-11
- 第1章 绪论11-17
- 1.1 研究背景11-13
- 1.1.1 大数据处理技术发展背景11-12
- 1.1.2 Spark数据处理平台12-13
- 1.2 Spark平台中既有资源分配方式及不足13-15
- 1.2.1 目前Spark平台资源分配方式13-14
- 1.2.2 目前Spark平台资源分配方式存在的不足14-15
- 1.3 本文的主要贡献15-16
- 1.4 本文的组织结构16
- 1.5 本章小结16-17
- 第2章 相关工作17-25
- 2.1 海量数据处理平台发展概述17-18
- 2.1.1 海量数据处理应用新特征17
- 2.1.2 新型海量数据处理平台发展历程17-18
- 2.2 Spark平台概述18-20
- 2.2.1 Spark平台架构18
- 2.2.2 Spark并行计算模型18-19
- 2.2.3 Spark运行时环境19
- 2.2.4 Spark平台作业调度19-20
- 2.3 资源管理系统20-21
- 2.3.1 YARN平台20
- 2.3.2 Mesos平台20-21
- 2.4 资源管理相关研究工作21-24
- 2.4.1 资源分配技术相关研究21-22
- 2.4.2 资源调度算法相关研究22-24
- 2.5 本章小结24-25
- 第3章 任务执行器资源动态调整决策模型25-35
- 3.1 任务执行器资源使用特征分析25-27
- 3.1.1 单任务资源使用特征分析25-26
- 3.1.2 任务对资源累积使用特征分析26-27
- 3.2 任务执行器资源使用均衡-饱和度定义27-29
- 3.3 任务执行器资源动态调整决策模型29-33
- 3.3.1 主要设计思想及核心定义29-30
- 3.3.2 任务执行器资源动态调整决策算法30-33
- 3.4 本章小结33-35
- 第4章 任务执行器资源组合分配策略35-43
- 4.1 多任务执行器资源组合调度策略的设计目标35-38
- 4.1.1 问题描述35-37
- 4.1.2 目标函数的建立37-38
- 4.2 基于蚁群算法的多任务执行器资源动态分配策略设计38-42
- 4.2.1 核心定义与约束条件38-40
- 4.2.2 基于蚁群算法的多任务执行器资源动态分配策略40-41
- 4.2.3 时间复杂度分析41-42
- 4.3 本章小结42-43
- 第5章 任务执行器资源动态分配原型系统实现43-53
- 5.1 DRSpark系统总体框架43-45
- 5.2 基于任务执行器资源动态分配方法元数据组织模型45-47
- 5.2.1 平台资源数据组织模型45-46
- 5.2.2 平台资源请求数据组织模型46
- 5.2.3 Spark平台任务执行器数据组织模型46-47
- 5.3 基于蚁群算法的任务执行器资源动态分配技术实现47-51
- 5.3.1 任务执行器资源动态调整决策功能实现47-49
- 5.3.2 任务执行器资源动态分配技术的功能能实现49-51
- 5.4 本章小结51-53
- 第6章 性能测试与分析53-75
- 6.1 测试负载53-56
- 6.1.1 Spark平台多应用混合负载现状53
- 6.1.2 测试负载与数据集选取53-54
- 6.1.3 负载混合比例54-55
- 6.1.4 负载分发原则55
- 6.1.5 混合负载构造结果55-56
- 6.2 性能评价指标56-58
- 6.2.1 任务吞吐率56
- 6.2.2 应用平均周转时间56
- 6.2.3 节点平均CPU利用率56
- 6.2.4 节点平均内存利用率56-57
- 6.2.5 任务吞吐率提升比重57
- 6.2.6 应用平均周转时间提升比重57
- 6.2.7 节点平均CPU利用率提升比重57-58
- 6.2.8 节点平均内存利用率提升比重58
- 6.3 测试结果与分析58-73
- 6.3.1 测试环境58
- 6.3.2 系统性能测试与分析58-68
- 6.3.3 DRSpark系统可变参数测试与性能分析68-73
- 6.4 本章小结73-75
- 结论75-77
- 参考文献77-81
- 攻读硕士学位期间所发表的学术论文81-83
- 致谢83
本文编号:965959
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/965959.html