一种面向大数据应用的云计算资源调度方法与流程

文档序号:14688020发布日期:2018-06-15 06:46阅读:178来源:国知局

本发明涉及一种面向大数据应用的云计算资源调度方法,属于软件技术领域。



背景技术:

由于虚拟化环境具有更好的可靠性,更强的可管理性和更高的整体性能,使得混合物理集群和虚拟集群普遍被各大云服务提供商使用。虽然随着虚拟化感知硬件的引入,虚拟化开销持续降低,但在虚拟集群中执行批处理作业时,性能仍然受到严重影响。但是,如果我们在纯物理集群中处理所有批处理作业,则其资源利用率将受到严重影响,导致大量资源浪费。为了更好地利用物理集群和虚拟集群,以提高Map-Reduce资源利用率和混合集群的整体性能,增强整个集群的作业处理能力,我们应适当地为每个作业分配混合集群中的资源。目前已有的研究工作大致可以分为以下三类:其一,通过对Hadoop本身的优化来提高对资源的利用率;其二,通过利用部署在同一个混合环境下交互式应用的空闲资源来提高全局资源利用率;其三,整合以上两种方案后的优化方案。

如今,许多大型互联网公司每天都从不同的工作负载生产大量数据,为了让这些数据能更好地用于统计分析,这些数据将被放到混合集群中进行统计分析,以实现更好的产品设计,提高垃圾邮件和欺诈检测能力和增加宣传效应等。许多现有的研究工作都集中关注如何处理一些通用的情况,忽略了这类数据在规模和类型上总是相似和稳定的事实。对于第一类方案:通过对Hadoop本身的优化来提高对资源的利用率,这类方案存在两个明显的问题:Hadoop框架的定制化,针对优化的单一性忽视各个作业间存在的资源竞争关系。对于Hadoop框架的定制是一个极具挑战性的工作,需要对Hadoop底层有比较深入的研究。首先需要对所有批处理作业本身的特性进行深入分析,同时还需要对集群所在物理环境有深刻理解并进行调整,整个工作具有极大的挑战性和不可再现性。优化的单一性会使得单个作业的资源利用率在给定条件下得到明显的提升,但是目前发明面对的问题是如何提高整个混合集群的资源利用率。在这个大前提下,所有待处理的批处理作业都需要进行考虑,同时还需要考虑每个单一作业本身的特性,只有这样才能获得全局的最优解。对于第二类优化方案,他们的侧重点是在保证交互式任务不受过度影响的前提下进行空闲资源的利用而不是以充分挖掘所有可用资源为目标。虽然资源利用率提高了,但是结果一定不是最优的,因为他们的策略始终受限于交互式任务,只有交互式任务的资源得到满足的情况下才会进行批处理作业调度。此外大部分的研究工作都只是单纯地考虑利用交互式任务的空闲资源并没有考虑批处理作业本身之间的关系,这也造成了和第一类方案类似的局部优化问题。至于第三类综合性优化策略,该类优化是针对作业集在混合集群中的通用优化策略,没有考虑批处理作业本身对不同类型集群的偏好同时没有充分利用作业的已知性。为了更好地处理这种情况,充分利用混合集群特性和作业已知性。



技术实现要素:

本发明的目的:发明提出了一种称为发明的调度系统,用于处理混合集群中的大规模稳定工作流。在发明中,不同类型的作业将使用不同的ID进行标记,发明根据作业ID分析这些批处理作业。基于成本效益模型的发明将自动为每个作业分配资源,这里的资源仅涉及两个维度:集群类型和集群规模。发明由离线训练和反馈调整两个阶段组成。对于离线学习,由于大规模数据的类型有限,并且数据规模每天都比较稳定,所以离线训练可以很好地描述所有批处理作业的关键特征。在离线训练的基础上,可以轻松地建立成本效益模型,并由此抽象出一个三维动态规划问题;在解决这个三维动态规划问题得到一个局部最优解后,发明进一步利用递归贪心算法可以求取一个全局最优的资源分配策略。对于一个全新的批处理作业,用户需要做的仅仅是对该单一新作业进行离线训练。对于反馈调整,虽然短时间内这些数据的规模是相对稳定的,但如果只建立一个静态模型并保持不变,最终的作业集将与原始训练用的数据集有显著差别,导致不准确的模型描述进而影响算法结果;为此,发明将利用反馈调整机制及时更新基础数据集以满足模型准确预测的需要。

本发明技术解决方案:一种面向大数据应用的云计算资源调度方法,其特点在于实现步骤如下:

第一步,离线学习:为每个已知的批处理作业构建作业完成时间哈希表。为了能高效的进行自动化构建,发明引入了离线学习模块。首先将所需要处理的每个作业提交到系统。系统将自动分配一定的资源给该作业——资源会在不同类型的集群上以不同的规模进行分配。通过ARIA系统的工作,我们知道在同构环境下如果给定计算资源和作业规模,作业在同构环境下的作业完成时间是可以准确预测的。 对于批处理作业,首先离线模块会将作业放到不同类型的集群中同时选择不同的集群规模进行多次处理。具体到发明的设定,离线模块首先会将作业放到以10台由Dom0构成的集群中。为了保证对作业关键数据采集的稳定性,系统将对该作业在相同配置下运行三次并取平均以获得作业如下列举的与实际资源分配无关的各阶段的时间数据,包括map阶段和reduce阶段的两组数据。

第二步,资源规划:在离线学习的基础上,发明很容易得到作业集中每个作业的完成时间哈希表。此时,每个作业的具体资源分配问题就归结为在给定总资源的前提下如何为每个作业进行资源分配使得该作业集在该给定资源上全局完成时间最短。转化为最优解的求解问题。至于每个作业的具体资源配置,最后当我们获得所有作业在所有资源上的最优解时,我们可以容易地通过最后一个作业的资源配置不断通过回溯每一个作业在取得该最优解时的具体资源配置。至此,我们获得了所有作业在所有可用资源中获得最优全局完成时间的具体资源配置。该算法的时间复杂度为,其中N为批处理作业集中作业的数量,M为集群规模。

该三维动态规模获取的最优资源分配是基于一次性将所有作业进行资源分配的结果,具有一定的局限性。这直接导致了一个局部最优的结果,关键作业被分配的资源不足导致全局作业完成时间延长。为了避免因关键作业资源不足进而导致全局作业完成时间延长,发明进一步设计了递归贪心算法以避免上述的局部最优结果。在递归贪心算法中,发明在原动态规划资源分配的基础上将最短作业的资源调整到关键作业上,而该被剥夺了资源的短作业将等待其他作业完成并释放资源后再做处理,如果以上资源调整使得全局作业完成时间相比于调整前缩短了,我们将执行以上调整并准备开始下一轮调整否则终止贪心调整,直接将结果返回。

第三步,反馈调整

针对发明的研究,反馈调整的本质是一个学习并调整底层作业完成时间预测基础数据的过程。对于处理完的作业集产生的新的用于时间预测的数据,反馈控制器将调整数据库中的对应数据使得系统得到及时地更新。至于具体如何使用最新获取的不同类型集群上的预测基数以便预测下一次的作业完成时间,目前有很多预测算法,发明将使用EWMA作为基础进行数据调整。

为了再进一步了解EWMA的实际使用场景,发明参考了EWMA chart。在统计质量控制中,EWMA图是一种控制图。该控制图使用监控的业务或工业过程的整个历史数据来监控变量或属性类型数据。EWMA以几何递减的顺序对样本进行加权,使得最近的样本被加权最高,而最远的样本贡献非常小。在此基础上EWMA被不断利用在经济学中进行风险预测。由于EWMA的主要目标是估计时间序列的下一段变化值,并随着当前观测到的变化而密切跟踪预测未来的变化值。故此,发明的反馈调整将利用每次作业集完成后的在特定集群上的运行日志抽取并分析可以利用的用于该作业在该类集群中完成时间预测。至于调整方案也如上所述,利用EWMA进行调整。

本发明与现有技术相比具有如下优点:

l 利用日志分析技术抽取作业在不同阶段不同类型集群下的数据预测集,进而可以对作业在不同类型的集群中不同集群规模下的完成时间进行预测。

l 利用作业完成时间预测技术构建基础数据进而利用动态规划和贪心算法求取具体资源配置构建全局资源规划器。

l 发明引入了反馈调整策略以动态调整系统的基础数据集来保证作业完成时间预测的准确性。

附图说明

图1为面向大数据应用的云计算资源调度框架。

具体实施方式

以下结合具体实施例和附图对本发明进行详细说明,如图1所示,本发明实施例方法流程:

发明主要针对发明的整体构架进行简要讨论,说明每个模块的具体功能和用户接口等与实现有关的主要设计实现内容。发明的构架。从构架图中,我们很容易看出对于用户可见的内容是极其有限的。这样做的目的很直接,为了实现较窄的对外接口以保证底层技术的可更新和可替换性。对用户而言主要功能就是将作业集通过调度系统进行资源调度然后等待处理结果。

首先需要注意的是当用户提交完作业集后,调度系统首先会通过分派器到数据库中查询作业集中的作业标记以确保所有作业都经过训练。数据库是资源规划器的数据基地,是预测不同作业完成时间的基础。如果作业集中的作业都经过训练,则分派器会将作业集分派给资源规划器;在资源规划器中,以作业完成时间预测为基础,资源规划器会通过数据库查询获取该作业的预测基数并通过预测器预测该作业在特定资源配置情况下的完成时间;在获取到所有作业的预测完成时间后资源规划器中的规划器将就作业集中的所有作业进行资源最优配置规划;最后当规划完成后,资源规划器将所有作业及其具体资源配置下发到服务器主控节点;服务器主控节点将接管所有作业的处理和具体资源调度;最后当作业集中的作业全部完成时,反馈控制器将从最新处理的作业对应的日志中提取并获取作业处理过程中不同阶段在不同类型集群上的运行时间并更新反馈到数据库。同时当所有作业都处理完后,客户端将返回所有工作的完成时间和总完成时间。

离线学习过程,其核心流程和上述基本一致主要差异在于系统需要自动对同一个作业进行多次处理,抽取预测基础数据集并写入数据库以解决新作业的冷启动问题。在用户提交作业集后,分派器通过数据库查询确定有作业标识无法识别时,将通知用户所有未能正确识别的标记列表。此时用户可以根据提示选择这些没有经过训练的作业构成一个全新的作业集。因为系统需要提前训练所有的作业以做出更好地判断。故用户需要重新提交这个全新的作业集并指定为训练作业集。此时,分派器会将这个新作业集提交到数据采集器中进行自动化训练。该训练过程主要包括两个阶段:冷启动阶段和实际训练阶段。在冷启动阶段,作业集中的作业将按照预先定义的默认资源配置分别在虚拟集群和物理集群中进行处理。通过冷启动阶段,系统将获得每个作业在不同类型集群下的处理日志。通过该日志,Hadoop优化器可以对不同的作业进行不同程度的优化。在经过优化后,训练器将开始正式的作业训练。每个作业将使用优化后的Hadoop配置进行处理。每个作业在该处理过程将分别在物理集群和虚拟集群中处理一定的次数,最后将利用处理后的日志抽取完成时间预测基数,并将该结果写入数据库。最终,根据写入状态返回最终训练结果。至此,整个训练过程结束,客户端将提示用户重新提交作业集。

在实际用户使用过程中,用户会利用云平台管理工具进行作业集的处理。首先出现在用户面前是虚拟机、物理主机、集群、区域等管理模块。在用户进行实际作业处理前,用户需要建立一个区域模块,然后在该区域中选择或者新建一定规模的集群。此后针对用户的批处理作业,用户只需要将作业集提交到特定的集群中并按照向导进行操作即可。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1