论文部分内容阅读
21世纪我们迎来了全新时代——大数据时代,数据被人们誉为了“金矿”。大数据推动了云计算的蓬勃发展,云计算已成为了一种新的商业模式,在工业界,学术界和社会中受到越来越多人的关注与重视。“云”为全球用户提供固定或移动的新的维度,以基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)的形式提供计算资源,这些类型的资源在基于因特网的环境中按使用量付费或者以订阅方式按需提供。由于使用资源的不确定性,对于搭建在云平台上集群和应用来说,决定它的资源容量大小是一把双刃剑,这可能会导致供应不足或者过度供应。针对云资源租户而言,资源的需求过多,将会导致其资源的浪费、花费过高;而针对云服务商而言,过多的提供资源给租户,将会导致自己整体资源使用率偏低。因此,云计算中的资源调度问题被认为与非确定性多项式(NP)优化问题一样困难。为了提高资源的利用率,本文从集群内部和集群规模两个层次展开研究工作。(1)首先对Hadoop原理架构及MapReduce计算框架和HDFS文件系统两个核心模块进行了详细的研究,然后分析了 Hadoop系统中支持的三种调度算法,发现目前的算法存在不足。本文采用自学习的方式去调度资源,提出特征加权朴素贝叶斯调度算法,实验结果表明在运行WordCount作业时,使用特征加权的朴素贝叶斯调度算法比使用Hadoop默认的调度算法所需时间少,资源的利用率更高。(2) Hadoop集群整体资源供应不足和过度供应分别会导致资源的饱和和资源的浪费。结合云平台OpenStack和大数据工具Hadoop设计了一个动态调整集群规模的系统,整个系统将由监控、调度、虚拟机管理三个模块组成。在调度部分定时器调整只能应对一些比较周期性和稳定的工作负载情况,而阈值调整虽然可以处理几乎所有的情况,但存在资源提供延迟问题,本文提出基于SVM的时间序列工作负载预测算法,而预测结果的准确度对决策有着至关重要的影响。因此,使用SVM算法和ARMA算法对工作负载的时间序列进行建模预测,实验结果显示在增长型和无规则型两种工作负载的模型下,SVM模型的预测结果都比ARMA模型结果更加准确。