容器云环境中流数据处理系统的弹性资源调度方法及系统技术方案

技术编号:16269765 阅读:47 留言:0更新日期:2017-09-22 21:26
本发明专利技术公开了一种容器云环境中流数据处理系统的弹性资源调度方法及系统,其中,方法的实现包括:执行信息采集与分析步骤,采集上一个批次作业完成时间,集群中每个节点处理时间,集群中每个节点处理的负载量,根据作业完成时间和节点处理时间关系,分析当前集群的资源需求状况并做出资源决策;集群扩展步骤,增加或者减少集群中容器节点;集群内资源调度步骤,动态调节集群内各节点间的资源分配。本发明专利技术旨在通过获取历史作业执行信息,分析集群资源状况并实现弹性资源配置,保证流处理系统面临负载变化和负载不均衡时的性能并降低资源开销。

【技术实现步骤摘要】
容器云环境中流数据处理系统的弹性资源调度方法及系统
本专利技术属于云计算资源调度
,更具体地,涉及一种容器云环境中流数据处理系统的弹性资源调度方法及系统。
技术介绍
大数据时代下,社交网络、在线购物、物联网等会产生大量的实时数据流,如何快速分析这些实时数据成为大数据处理技术的一大挑战。分布式流数据处理系统是一类将实时流数据处理过程转换成多个小作业,在多个处理机器上并行执行的系统。基于小批次作业的分布式流数据处理系统将实时流数据按照时间间隔切分成一系列的小批次数据,然后对这些小批次数据进行处理,利用这种方式,该类型系统可以提供低延迟、高吞吐量的实时数据处理服务。随着云计算技术的发展和普及,将这类复杂的应用部署到云环境中成为趋势。然而,生产环境中实时数据流的产生速度往往是波动的,如果在部署系统到云环境中的时候固定分配系统资源则无法保证系统性能。一方面,数据流速度过大会导致系统负载过大,固定的资源配置可能使系统无法承受高负载,进而导致处理不及时。另一方面,流数据输入速度过小会导致系统负载较小,而系统固定的资源配置会导致资源浪费,造成云计算用户的开销增大。除此之外,由于流数据被切分成多个批次数据块,针对每个批次数据的处理作业被划分成多个小作业到各个执行节点上运行,由于每一个批次数据的分布并不是均衡的,当被划分成多个小作业处理时,对应的数据块大小也呈现不均衡现象,进而不同的节点处理的负载量不均衡。由于批次执行时间取决于最慢的执行节点,因此这种不均衡势必最终使整个批次的处理时间增加,延迟时间增加,系统性能无法保证。针对数据流速度波动问题,目前的处理办法有两种:资源最大化和弹性资源调度。资源最大化,即通过实际试运行和统计分析等手段,事先估计系统将会面临的最大峰值负载,根据峰值负载,最大化配置系统资源,保证系统的峰值性能。这种方式能很好保证系统性能,但如果数据流速度较低,则存在资源严重浪费的情况,为云计算用户带来额外开销。弹性资源调度,即通过对系统运行时状态进行观测和分析,根据负载变化弹性地调度系统资源,实现资源量和负载大小的匹配。针对负载不均衡的问题,目前的处理方法有两种:负载重新划分和弹性配置节点资源。负载重新划分,即根据一定的划分策略,将负载数据重新划分到各个节点上,尽力使其均衡分布在各个节点上。这种方法一定程度上可以改善负载不均衡的问题,但是在流数据处理中每个批次作业执行时间要求在秒级别,数据重新划分会增加大量时间开销导致执行时间增加,系统性能受到影响。动态配置节点资源,即根据各个节点处理的负载大小,弹性地配置其资源使得其处理能力能够适应其负载。这种方式在云计算环境中是十分简单高效的。本专利技术试图探索一种在容器云环境中针对流数据处理系统的弹性资源调度方法,依据系统处理的负载量变化,弹性地调度系统的资源,使得其能够适应数据流速度波动和节点负载分布不均衡的情况,保证其在云计算环境中的性能并降低资源开销。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术提供了一种容器云环境中流数据处理系统的弹性资源调度方法及系统,根据系统处理的负载来指导系统的资源调度,通过弹性扩展集群节点个数使系统能够适应流数据速度的波动,通过弹性配置各个节点的CPU资源应对节点负载不均衡的情况,保证系统的性能。由此解决现有技术中针对流数据处理系统在容器云环境中存在的性能问题。为实现上述目的,按照本专利技术的一个方面,提供了一种容器云环境中流数据处理系统的弹性资源调度方法,包括:S1、根据采集信息分析系统当前作业执行情况,对容器集群的资源状态做出判断,其中,所述采集信息包括上一个批次作业完成时间、上一个批次作业中每个容器节点花费的处理时间;S2、若容器集群的资源紧张或者空闲,则由M个历史批次作业中每个容器节点处理的负载数据量预测下一个批次作业的负载数据量,由上一个批次作业完成时间以及上一个批次作业的负载数据量计算容器节点的平均处理速度,然后依据下一个批次作业的负载数据量和平均处理速度计算新的集群规模大小,对容器集群规模进行扩展,M为第一预设值;S3、若负载不均衡,则由M个历史批次作业中每个容器节点处理的负载数据量预测在下一个批次作业中每个容器节点处理的负载数据量,并重新划分CPU份额,对容器集群内部容器节点间进行CPU资源调度。优选地,步骤S1包括以下步骤:S1.1、若pt≠λ*I,则说明系统处于不稳定状态,需要进行资源调整,其中,pt为上一个批次作业完成时间,λ为第二预设值,I为第三预设值,I表示流数据处理应用程序指定的批次周期;S1.2、根据上一个批次作业中每个容器节点花费的处理时间nt,将容器节点分为两类:其中,fast类型节点表示执行速度快的节点,slow类型节点表示执行速度慢的节点,统计fast节点个数记为Nf,统计slow节点个数记为Ns,μ为第四预设值;S1.3、若pt>λ*I且Ns≥σ*N,则说明容器集群资源不足;若pt>λ*I且Ns<σ*N,则说明容器集群中容器节点负载不均;若pt<λ*I且Nf≥σ*N,则说明容器集群资源过剩,其中σ为第四预设值,N为容器集群中当前容器节点数量。优选地,步骤S2包括以下步骤:S2.1、由W'=α*W+(1-α)*WΔ对下一个批次作业的负载数据量进行预测,其中W'表示预测的下一个批次作业的负载数据量,W表示上一个批次作业的负载数据量,WΔ表示最近两个已经完成的批次作业的负载数据量差值,且批次作业的负载数据量为该批次作业中每个容器节点处理的负载数据量之和,α为第五预设值,且α由M个历史批次作业中每个容器节点处理的负载数据量进行确定;S2.2、由计算上一个批次作业中容器节点的平均处理速度;S2.3、由计算新的集群节点数量;S2.4、根据所述新的集群节点数量,增加或者减少容器节点,调整容器集群规模。优选地,步骤S3包括以下步骤:S3.1、由w'=β*w+(1-β)*wΔ对下一个批次作业中每个容器节点的负载数据量进行预测,其中w'表示预测的下一个批次作业中容器节点的负载数据量,w表示上一个批次作业中对应容器节点的负载数据量,wΔ表示最近两个已经完成的批次作业中对应容器节点的负载数据量差值,β为第六预设值,且β由M个历史批次作业中每个容器节点处理的负载数据量进行确定;S3.2、由计算下一个批次作业中各容器节点的CPU份额,其中,cpu_ratio'i是第i个容器节点的CPU份额,w'i是预测的下一个批次作业中第i个容器节点的负载数据量,cpu_ratioi是上一个批次作业中第i个容器节点分配到的CPU份额;S3.3、由下一个批次作业中各容器节点的CPU份额对容器节点的CPU份额进行调节。优选地,步骤S2.4具体包括:若N'>N,则增加N'-N个容器节点,若N'<N,则根据上一个批次作业中每个容器节点的负载数据量,选择N-N'个负载数据量最少的容器节点加入黑名单,并在I时间后关闭该N-N'个容器节点。按照本专利技术的另一方面,提供了一种容器云环境中流数据处理系统的弹性资源调度系统,包括:执行信息采集与分析模块,用于根据采集信息分析系统当前作业执行情况,对容器集群的资源状态做出判断,其中,所述采集信息包括上一个批次作业完成时间、上一个批次作业中每个容器节点花费的处理时间;集群扩展模块,用于在本文档来自技高网
...
容器云环境中流数据处理系统的弹性资源调度方法及系统

【技术保护点】
一种容器云环境中流数据处理系统的弹性资源调度方法,其特征在于,包括:S1、根据采集信息分析系统当前作业执行情况,对容器集群的资源状态做出判断,其中,所述采集信息包括上一个批次作业完成时间、上一个批次作业中每个容器节点花费的处理时间;S2、若容器集群的资源紧张或者空闲,则由M个历史批次作业中每个容器节点处理的负载数据量预测下一个批次作业的负载数据量,由上一个批次作业完成时间以及上一个批次作业的负载数据量计算容器节点的平均处理速度,然后依据下一个批次作业的负载数据量和平均处理速度计算新的集群规模大小,对容器集群规模进行扩展,M为第一预设值;S3、若负载不均衡,则由M个历史批次作业中每个容器节点处理的负载数据量预测在下一个批次作业中每个容器节点处理的负载数据量,并重新划分CPU份额,对容器集群内部容器节点间进行CPU资源调度。

【技术特征摘要】
1.一种容器云环境中流数据处理系统的弹性资源调度方法,其特征在于,包括:S1、根据采集信息分析系统当前作业执行情况,对容器集群的资源状态做出判断,其中,所述采集信息包括上一个批次作业完成时间、上一个批次作业中每个容器节点花费的处理时间;S2、若容器集群的资源紧张或者空闲,则由M个历史批次作业中每个容器节点处理的负载数据量预测下一个批次作业的负载数据量,由上一个批次作业完成时间以及上一个批次作业的负载数据量计算容器节点的平均处理速度,然后依据下一个批次作业的负载数据量和平均处理速度计算新的集群规模大小,对容器集群规模进行扩展,M为第一预设值;S3、若负载不均衡,则由M个历史批次作业中每个容器节点处理的负载数据量预测在下一个批次作业中每个容器节点处理的负载数据量,并重新划分CPU份额,对容器集群内部容器节点间进行CPU资源调度。2.根据权利要求1所述的方法,其特征在于,步骤S1包括以下步骤:S1.1、若pt≠λ*I,则说明系统处于不稳定状态,需要进行资源调整,其中,pt为上一个批次作业完成时间,λ为第二预设值,I为第三预设值,I表示流数据处理应用程序指定的批次周期;S1.2、根据上一个批次作业中每个容器节点花费的处理时间nt,将容器节点分为两类:其中,fast类型节点表示执行速度快的节点,slow类型节点表示执行速度慢的节点,统计fast节点个数记为Nf,统计slow节点个数记为Ns,μ为第四预设值;S1.3、若pt>λ*I且Ns≥σ*N,则说明容器集群资源不足;若pt>λ*I且Ns<σ*N,则说明容器集群中容器节点负载不均;若pt<λ*I且Nf≥σ*N,则说明容器集群资源过剩,其中σ为第四预设值,N为容器集群中当前容器节点数量。3.根据权利要求2所述的方法,其特征在于,步骤S2包括以下步骤:S2.1、由W'=α*W+(1-α)*WΔ对下一个批次作业的负载数据量进行预测,其中W'表示预测的下一个批次作业的负载数据量,W表示上一个批次作业的负载数据量,WΔ表示最近两个已经完成的批次作业的负载数据量差值,且批次作业的负载数据量为该批次作业中每个容器节点处理的负载数据量之和,α为第五预设值,且α由M个历史批次作业中每个容器节点处理的负载数据量进行确定;S2.2、由计算上一个批次作业中容器节点的平均处理速度;S2.3、由计算新的集群节点数量;S2.4、根据所述新的集群节点数量,增加或者减少容器节点,调整容器集群规模。4.根据权利要求3所述的方法,其特征在于,步骤S3包括以下步骤:S3.1、由w'=β*w+(1-β)*wΔ对下一个批次作业中每个容器节点的负载数据量进行预测,其中w'表示预测的下一个批次作业中容器节点的负载数据量,w表示上一个批次作业中对应容器节点的负载数据量,wΔ表示最近两个已经完成的批次作业中对应容器节点的负载数据量差值,β为第六预设值,且β由M个历史批次作业中每个容器节点处理的负载数据量进行确定;S3.2、由计算下一个批次作业中各容器节点的CPU份额,其中,cpu_ratioi'是第i个容器节点的CPU份额,wi'是预测的下一个批次作业中第i个容器节点的负载数据量,cpu_ratioi是上一个批次作业中第i个容器节点分配到的CPU份额;S3.3、由下一个批次作业中各容器节点的CPU份额对容器节点的CPU份额进行调节。5.根据权利要求3所述的方法,其特征在于,步骤S2.4具体包括:若N'>N,则增加N'-N个容器节点,若N'<N,则根据上一个批次作业中每个容器节点的负载数据量,选择N-N'个负载数据量最少的容器节点加入黑名单,并在I时间后关闭该N-N'个容器节点。6.一种容器云环境中流数据处理系统的弹性资源调度系统,其特征在于,包括:执行...

【专利技术属性】
技术研发人员:金海吴松王行军
申请(专利权)人:华中科技大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1