论文部分内容阅读
基于大数据处理和分布式计算的需求,很多分布式计算框架应运而生,分布式计算框架中集群资源的合理配置对计算效率有着重要的影响,因为性能预测是集群资源分配优化的基础和关键,所以对大数据计算作业的性能预测需求也越来越多。Spark作为目前大数据处理领域广泛使用的计算平台,合理分配集群资源对Spark作业性能优化有着重要的作用,本文正是基于此并结合实验室项目需求,提出了一种Spark性能预测模型。 本文通过深入分析Spark计算框架的架构和作业运行机制,选取了对Spark作业性能产生影响的相关因素:Spark作业本身设计逻辑、集群资源分配和SparkShuffle,其中后两者可以映射到Spark集群的配置参数,因此本文所建立的模型着重于作业输入数据量,作业类型和配置参数与性能之间的关系。通过对大量实验数据进行深入分析,提出了Spark作业运行关键阶段的概念,该概念是后续模型建立的基础。本文使用控制变量的方式建立了两个有关性能预测的模型,第一个模型在关键阶段的基础上只对作业的不同输入数据量和作业运行时间进行研究,提出了基于关键阶段的性能预测模型,该模型是通过收集运行的小批量数据集相关信息来预测大数据集情况下作业的运行时间,是后续模型的基础。随后本文使用朴素贝叶斯、支持向量机和决策树方法建立了不同的预测模型,模型的基本思路是选取相似作业进行预测,这其中需要计算Spark作业的相似度,文章选取使用DAG图的编辑距离计算两个作业的相似性,在计算DAG图的编辑距离的时候使用关键阶段大大简化了计算的复杂度。本文最后通过实验验证分析了本文所建立的模型具有较好的准确性。