资源分配方法、装置以及电子设备制造方法及图纸

技术编号:24455112 阅读:16 留言:0更新日期:2020-06-10 15:19
本申请公开了一种资源分配方法、装置以及电子设备,涉及资源分配领域。具体实现方案为:根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,得到目标业务在当前周期的资源量,目标业务与上游业务具有数据依赖关系;在当前周期内利用资源量运行目标业务,并监测目标业务在各执行器中的运行数据的变化;根据目标业务在各执行器中的运行数据的变化,实时调整目标业务的资源量和/或目标业务在各执行器的数据分布。提高了集群的资源利用率,使得业务运行性能相对稳定、可配置。即使底层环境发生变化,也会通过自动增加或减少资源量,保持业务运行性能相对稳定。同时,还可以通过调整业务运行性能的配置参数来配置业务运行性能。

Resource allocation methods, devices and electronic equipment

【技术实现步骤摘要】
资源分配方法、装置以及电子设备
本申请涉及大数据业务
,尤其涉及资源分配领域。
技术介绍
随着互联网技术持续的发展与应用,产生了海量的数据与各式各样的数据计算引擎。数据计算引擎是用来对数据做计算的组件。为了提取海量数据中有价值的数据,需要开发大量的数据ETL(抽取、转换以及加载,Extract-Transform-Load)业务,并且按照一定的周期,在线运行这些ETL业务。其中,ETL用来描述将数据从数据源经过抽取(extract)、转换(transform)、加载(load)至目的数据源的过程。Spark作为目前流行的大数据解决方案,有着众多优良特性。在Spark中包括数据计算引擎。现有的Spark业务普遍采用的资源分配方案,在启动ETL业务的命令中可以配置用于运行业务的资源量,这部分资源量的配置就是业务的资源预分配方案。然而,如果定义一个相对宽松的资源预分配方案,并对所有的ETL业务使用这个资源预分配方案,那么对于业务量小的ETL业务,会出现资源过剩,造成集群资源利用率低的情况。对于业务量大的ETL业务,会出现资源不足,造成业务运行性能低、耗时长的情况。所以,现有的资源分配方案都无法分配适当的资源量来运行ETL业务。
技术实现思路
本申请提供了资源分配的方法、装置、电子设备及存储介质。第一方面,本申请实施例提供一种资源分配方法,包括:根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,得到目标业务在当前周期的资源量,目标业务与上游业务具有数据依赖关系;在当前周期内利用资源量运行目标业务,并监测目标业务在各执行器中的运行数据的变化;根据目标业务在各执行器中的运行数据的变化,实时调整目标业务的资源量和/或目标业务在各执行器的数据分布。本实施方式中,提高了集群的资源利用率,使得业务运行性能相对稳定、可配置。即使底层环境发生变化,通过自动增加或减少资源量,保持业务运行性能相对稳定。同时,还可以通过调整业务运行性能的配置参数来配置业务运行性能。在一种实施方式中,还包括:在目标业务运行完成的情况下,记录目标业务在当前周期的运行数据。本实施方式中,目标业务在下一个周期运行时,读取存入日志表的目标业务在当前周期的运行数据,作为下一周期的资源预分配的参考数据,提高了资源量分配的是适应性和准确性。在一种实施方式中,根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,得到目标业务在当前周期的资源量,包括:在未查找到目标业务在历史周期的运行数据的情况下,确定目标业务是新业务,得到第一资源量;第一资源量包括:预先设置的执行器的数量、执行器的核数和单个执行器的内存量。本实施方式中,在未查找到目标业务在历史周期的运行数据的情况下,利用预设的第一资源量来运行新业务,保证有足够的资源量来运行目标业务。在一种实施方式中,根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,得到目标业务在当前周期的资源量,包括:在根据目标业务在历史周期的运行数据确定目标业务的业务逻辑发生更新的情况下,得到第一资源量;第一资源量包括:预先设置的执行器的数量、执行器的核数和单个执行器的内存量。本实施方式中,在查找到目标业务在历史周期的运行数据的情况下,并且确定了目标业务的业务逻辑发生更新,利用预设的第一资源量来运行业务逻辑发生更新的业务,保证有足够的资源量来运行目标业务。在一种实施方式中,根据目标业务在历史周期的运行数据确定目标业务的业务逻辑发生更新,包括:根据目标业务在当前周期的业务配置文件,计算第一文件检验和;将目标业务在历史周期的运行数据中的文件检验和,作为第二文件检验和;在第一文件检验和与第二文件检验和不相同的情况下,确定业务逻辑发生更新。在一种实施方式中,根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,得到目标业务在当前周期的资源量,包括:根据目标业务的生产数据依赖关系确定上游业务;上游业务在当前周期的运行数据和上游业务在历史周期的运行数据的差异大于第一阈值的情况下,得到第一资源量;第一资源量包括:预先设置的执行器的数量、执行器的核数和单个执行器的内存量。本实施方式中,如果上游业务的数据量发生显著变化,则目标业务的数据量也可能在当前周期发生显著变化,则分配预设的第一资源量来运行目标业务,保证了有足够的资源量来运行目标业务,提高了资源量分配的适应性和准确性。在一种实施方式中,还包括:在差异小于第一阈值的情况下,得到第二资源量。本实施方式中,如果上游业务在当前周期的数据量没有发生显著变化,且目标业务在当前周期没有发生更新,则分配第二资源量来运行目标业务,保证了有适当的资源量来运行目标业务,提高了资源量分配的适应性和准确性。在一种实施方式中,第二资源量的计算方式包括:从目标业务在历史周期的运行数据中提取目标业务在多个周期的运行数据,目标业务在每个周期的运行数据包括业务运行时间、执行器的数量、最大并行任务数、最大内存使用量和最大数据量行数;根据目标业务在多个周期的业务平均运行时间、执行器的平均数量、最大并行任务数的平均值和最大数据量行数的平均值,得到执行器的数量;根据目标业务在多个周期的最大内存使用量的平均值和执行器的数量,计算单个执行器的内存量;第二资源量包括:执行器的数量、执行器的核数、单个执行器的内存量;其中,执行器的核数是预先设置的。在一种实施方式中,根据目标业务在各执行器中的运行数据的变化,实时调整目标业务的资源量和/或目标业务在各执行器的数据分布,包括:目标业务在当前周期的运行数据中,各执行器的总内存利用率超过第二阈值的情况下,增加运行目标业务的资源量。本实施方式中,在目标业务运行的过程中,实时监控目标业务的执行器的运行数据的变化情况,如有需要,及时追加资源量,提供给目标业务充足的资源量,避免了业务运行过程中由于资源量紧张导致的运行中断或者速度降低的技术问题。在一种实施方式中,根据目标业务在各执行器中的运行数据的变化,实时调整目标业务的资源量和/或目标业务在各执行器的数据分布,包括:目标业务在当前周期的运行数据中,在至少一个执行器的实时数据量与实时总数据量的比值超过第三阈值的情况下,对各个执行器执行的任务数据重新分配。本实施方式中,通过监控各个执行器内部的任务数据的变化,实时调控各个执行器的任务数据分布,提高了业务的运行速度,有效避免了部分执行器承担的任务数据很多,而另外部分执行器承担的任务数据很少,导致整个业务的运行进度降低的技术问题。第二方面,本申请实施例提供了一种资源分配装置,包括:资源量配置模块,用于根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,得到目标业务在当前周期的资源量;业务运行和监测模块,用于在当前周期内利用资源量运行目标业务本文档来自技高网...

【技术保护点】
1.一种资源分配方法,其特征在于,包括:/n根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,得到所述目标业务在当前周期的资源量,所述目标业务与所述上游业务具有数据依赖关系;/n在所述当前周期内利用所述资源量运行所述目标业务,并监测所述目标业务在各执行器中的运行数据的变化;/n根据所述目标业务在各执行器中的运行数据的变化,实时调整所述目标业务的资源量和/或所述目标业务在各所述执行器的数据分布。/n

【技术特征摘要】
1.一种资源分配方法,其特征在于,包括:
根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,得到所述目标业务在当前周期的资源量,所述目标业务与所述上游业务具有数据依赖关系;
在所述当前周期内利用所述资源量运行所述目标业务,并监测所述目标业务在各执行器中的运行数据的变化;
根据所述目标业务在各执行器中的运行数据的变化,实时调整所述目标业务的资源量和/或所述目标业务在各所述执行器的数据分布。


2.根据权利要求1所述的方法,其特征在于,还包括:
在所述目标业务运行完成的情况下,记录所述目标业务在当前周期的运行数据。


3.根据权利要求1所述的方法,其特征在于,根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,得到所述目标业务在当前周期的资源量,包括:
在未查找到所述目标业务在历史周期的运行数据的情况下,确定所述目标业务是新业务,得到第一资源量;
所述第一资源量包括:预先设置的所述执行器的数量、所述执行器的核数和单个所述执行器的内存量。


4.根据权利要求1所述的方法,其特征在于,根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,得到所述目标业务在当前周期的资源量,包括:
在根据所述目标业务在历史周期的运行数据确定所述目标业务的业务逻辑发生更新的情况下,得到第一资源量;
所述第一资源量包括:预先设置的所述执行器的数量、所述执行器的核数和单个所述执行器的内存量。


5.根据权利要求4所述的方法,其特征在于,根据所述目标业务在历史周期的运行数据确定所述目标业务的业务逻辑发生更新,包括:
根据所述目标业务在当前周期的业务配置文件,计算第一文件检验和;
将所述目标业务在历史周期的运行数据中的文件检验和,作为第二文件检验和;
在所述第一文件检验和与所述第二文件检验和不相同的情况下,确定所述业务逻辑发生更新。


6.根据权利要求1所述的方法,其特征在于,根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,得到所述目标业务在当前周期的资源量,包括:
根据所述目标业务的生产数据依赖关系确定所述上游业务;
所述上游业务在当前周期的运行数据和所述上游业务在历史周期的运行数据的差异大于第一阈值的情况下,得到第一资源量;
所述第一资源量包括:预先设置的所述执行器的数量、所述执行器的核数和单个所述执行器的内存量。


7.根据权利要求6所述的方法,其特征在于,还包括:
在所述差异小于所述第一阈值的情况下,得到第二资源量。


8.根据权利要求7所述的方法,其特征在于,所述第二资源量的计算方式包括:
从所述目标业务在历史周期的运行数据中提取所述目标业务在多个周期的运行数据,所述目标业务在每个周期的运行数据包括业务运行时间、所述执行器的数量、最大并行任务数、最大内存使用量和最大数据量行数;
根据所述目标业务在多个周期的业务平均运行时间、所述执行器的平均数量、最大并行任务数的平均值和最大数据量行数的平均值,得到所述执行器的数量;
根据所述目标业务在多个周期的最大内存使用量的平均值和所述执行器的数量,计算单个所述执行器的内存量;
所述第二资源量包括:所述执行器的数量、所述执行器的核数、单个所述执行器的内存量;
其中,所述执行器的核数是预先设置的。


9.根据权利要求1所述的方法,其特征在于,根据所述目标业务在各执行器中的运行数据的变化,实时调整所述目标业务的资源量和/或所述目标业务在各所述执行器的数据分布,包括:
所述目标业务在当前周期的运行数据中,各所述各执行器的总内存利用率超过第二阈值的情况下,增加运行所述目标业务的资源量。


10.根据权利要求1所述的方法,其特征在于,根据所述目标业务在各执行器中的运行数据的变化,实时调整所述目标业务的资源量和/或所述目标业务在各所述执行器的数据分布,包括:
所述目标业务在当前周期的运行数据中,在至少一个所述执行器的实时数据量与实时总数据量的比值超过第三阈值的情况下,对各个所述执行器执行的任务数据重新分配。


11.一种资源分配装置,其特征在于,包括:
资源量配置模块,用于根据目标业务在历史周期的运行数据和上游业务在当前周期的运行数据,...

【专利技术属性】
技术研发人员:邱峰志李辉
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1