- 前言
在大数据的潮流之下,Spark作为大数据处理的工具,正在越来越多的研究人员手下发光发热。为了让其有更优良的表现,很多学者在Spark原本的基础上提出了各种各样的优化设计,针对不同方向的性能优化是研究人员的攻坚对象。
- 研究现状
Spark资源的管理一直是大数据处理的关键问题,很多研究人员在针对这一课题的研究上投入自己的心血。Ying C等学者在Spark架构的理论分析的基础上提出了资源分配模型,并行度模型和分配适应度模型。在此基础上进一步提出了嵌入估价模型的策略,优化策略选择具有较低负载的工作人员以满足分配后者任务的要求,并且可能不会为具有较高负载的工作人员分配任务[1]。Nghiem P 等学者将他们提出的最佳权衡点(BToP)算法应用于Spark,并通过其内置的动态资源分配显示其性能和能耗优于Spark。他们的 BToP算法可以找到各个工作节点的最佳负载任务数。[2]Liu等学者介绍了一种用于数据分析系统的计算节点调度程序Elasecutor。Elasecutor根据预测的随时间变化的资源需求动态地调整节点资源大小。该程序显著提高了集群资源的利用率 [3]。Li等学者针对弹性资源调度提出时间片划分和任务调度的方案。根据不同的现实因素,制定了三种优先规则并配以相应的校准后的权重,根据权重完成资源的弹性调度[4]。Gao设计了一个具有高预测精度的二阶预测框架。为每个具有相似性能的集群应用背景梯度提升回归技术的特定性能预测模型。通过CPU和内存利用率系列分析性能。该框架可以高精度和高效率地预测ad-hoc程序的执行时间[5]。Baresi等学者为Spark设计了一个扩展程序XSpark,它能够动态地为应用程序弹性分配资源,以满足最低资源需和少量额外任务的需求。XSpark可以有效地分配资源以在设定的期限内执行单个应用程序[6]。Hidri等学者对Spark进行了修改,提出了Spark的异构版本HetSpark。HetSpark向Spark中添加了两类执行程序。为复杂的任务提供了GPU增强加速选项,可以通过Vine Talk与加速程序进行交互。HetSpark调度程序决定哪些任务需要使用加速器。HetSpark在处理复杂任务时GPU优秀的计算性能就具有压制性的优势[7]。MESTRE等学者提出了一套能够执行高效自适应的并行方法在批处理或实时模式下使用MapReduce和Spark索引EM方法。这种方法完成了对偏差数据的处理和个工作节点的负载均衡。他们提出的EM方法在性能方面与最先进的EM方法利用真正的集群基础设施和数据源进行了比较。在减少整体运行时间的同时保持类似实体检测的质量[8]。Sabiu 等学者通过利用Spark的图像处理能力的过程中研究Spark作业和资源的动态分配问题通过配置任务,资源大小和每个作业的并行任务数这些参数的调整产生的影响表明,使用这些参数的最佳值可以减少工作量,最大化群集利用率,并确保为每个应用程序分配公平的集群资源[9]。He等学者探讨执行器配额分配对Spark任务的影响。利用所做的实验提出随着执行节点配额的变化,任务阶段之间的执行时间会发生变化,因此任务执行时间会有所不同[10]。钟潇柔、翟健宏学者研究了基于动态遗传算法的云计算任务节能调度策略,提出了一种多适应度的动态节能的改进遗传调度算法,并在减少任务执行时间以及能耗方面具有相当优势[11]。张春艳等学者提出了基于蚁群优化算法的云计算任务分配,实现了动态更改可用节点信息列表,为用户请求分配合适节点,通过预测完成了时间动态调整状态转移,在提高任务执行速度上有很大的改善[12]。
- 结论
在前辈学者的研究中多是考虑到对资源的动态分配,都是为了提高人物的并行度及资源的利用率,其中不乏对Spark应用进行修改以动态执行不同的任务,仍然是为了实现负载均衡。但是使用这些方法下的集群环境中,各计算节点必然不会达到满负载运行,造成资源的浪费。于是可以提出一个假想,对在集群环境中的计算节点进行动态分配,在完成计算任务的同时尽量保持各个计算节点能够满荷载运行,这样就可以减少对资源的占用,又不影响计算任务的进行。
在文献中提到的CPU及内存利用率便是计算节点资源利用率的表现,可以作为在计算节点动态管理中的参考。对计算节点进行控制的几个参数更是本课题关注的重点。XSpark以及HetSpark中对Spark的修改为对Spark添加计算机点管理功能提供了参考。
参考文献:
[1] Ying C, Ying C, Ban C. A performance optimization strategy based on degree of parallelism and allocation fitness[J]. EURASIP Journal on Wireless Communications and Networking, 2018, 2018(1): 240.
[2]Nghiem P. Best Trade-Off Point Method for Efficient Resource Provisioning in Spark[J]. Algorithms, 2018, 11(12): 190.
[3]Liu L, Xu H. Elasecutor: Elastic Executor Scheduling in Data Analytics Systems[C]//Proceedings of the ACM Symposium on Cloud Computing. ACM, 2018: 107-120.
[4]Li X, Cai Z. Elastic resource provisioning for cloud workflow applications[J]. IEEE Transactions on Automation Science and Engineering, 2017, 14(2): 1195-1210.
[5]Gao Z, Wang T, Wang Q, et al. Execution Time Prediction for Apache Spark[C]//Proceedings of the 2018 International Conference on Computing and Big Data. ACM, 2018: 47-51.
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。