物理资源分配方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:19511119 阅读:21 留言:0更新日期:2018-11-21 07:40
本申请涉及一种物理资源分配方法、装置、计算机设备和存储介质。所述方法包括:接收终端提交的Spark任务及对应的配置文件;从配置文件中读取Spark任务的资源分配参数,根据资源分配参数进行物理资源分配;基于分配的物理资源执行Spark任务,监测Spark任务的执行效率;当监测到执行效率低于阈值时,对配置文件中的资源分配参数进行调整;将Spark任务从已分配的物理资源调度至与调整后的资源分配参数相适应的物理资源继续执行。采用本方法能够不依赖Spark任务版本更新及时对Spark任务进行资源动态分配,进而提高Spark任务运行效率。

【技术实现步骤摘要】
物理资源分配方法、装置、计算机设备和存储介质
本申请涉及计算机
,特别是涉及一种物理资源分配方法、装置、计算机设备和存储介质。
技术介绍
Spark(一种用于大规模数据处理的计算引擎)任务在开发完成后提交至任务调度平台。任务调度平台可以对多个Spark任务调度执行。任务调度平台需要为每个Spark任务分配合适的物理资源,如CPU(CentralProcessingUnit,中央处理器)、内存等。资源分配不合理会导致Spark任务运行效率低下,甚至根本无法运行。然而,传统方式Spark任务的资源分配策略是一种静态的方法。即使存在资源分配不合理的情况也需要等到Spark任务进行版本更新后才能重新进行物理资源分配,由此对Spark任务运行效率造成较大影响。
技术实现思路
基于此,有必要针对上述技术问题,提供一种能够不依赖Spark任务版本更新及时对Spark任务进行资源动态分配,进而提高Spark任务运行效率的物理资源分配方法、装置、计算机设备和存储介质。一种物理资源分配方法,所述方法包括:接收终端提交的Spark任务及对应的配置文件;从所述配置文件中读取所述Spark任务的资源分配参数,根据所述资源分配参数进行物理资源分配;基于分配的物理资源执行所述Spark任务;在所述Spark任务执行期间,监测所述Spark任务的执行效率;当监测到所述执行效率低于阈值时,对所述配置文件中的资源分配参数进行调整;将所述Spark任务从已分配的物理资源调度至与调整后的资源分配参数相适应的物理资源上继续执行。在其中一个实施例中,所述接收终端提交的Spark任务及对应的配置文件之前,还包括:接收终端发送的Spark任务开发请求;所述开发请求包含入口函数标识;识别所述入口函数标识对应的函数队列;所述函数队列包括多个业务函数;将多个所述业务函数分别转换为对应的多个基础任务;调用所述入口函数标识对应的群组装饰器将多个基础任务封装为多个任务组;配置多个任务组的调度顺序,基于所述调度顺序对多个任务组进行封装,得到所述Spark任务。在其中一个实施例中,所述Spark任务包括Shell脚本;所述Shell脚本预置了对所述配置文件的回调函数;所述从所述配置文件中读取所述Spark任务的资源分配参数,包括:通过执行Shell脚本启动所述Spark任务;基于所述回调函数,生成对所述配置文件的回调指令;根据所述回调指令拉取对应的配置文件;从拉取到的配置文件中读取所述资源分配参数。在其中一个实施例中,所述基于分配的物理资源执行所述Spark任务,包括:将所述Spark任务拆分为多个任务组;每个任务组具有对应的任务组标识;将所述任务组拆分为多个基础任务;每个基础任务具有对应的日志装饰器;基于分配的物理资源执行多个基础任务,生成每个基础任务的执行日志;利用所述日志装饰器,在相应基础任务的执行日志中添加所述基础任务对应的任务组标识;当所述Spark任务执行完毕时,对记录有相同任务组标识的多个执行日志进行收集,生成每个任务组标识对应的任务日志。在其中一个实施例中,所述监测所述Spark任务的执行效率,包括:计算所述Spark任务的任务总量;根据所述任务总量测算所述Spark任务的任务时长;按照预设时间频率调用任务运行监控组件采集所述Spark任务的运行信息;根据所述运行信息计算所述Spark任务在多个时间节点的任务执行量;根据所述任务执行量及所述任务时长,计算所述Spark任务在多个时间节点的执行效率。在其中一个实施例中,所述当监测到所述执行效率低于阈值时,对所述配置文件中的资源分配参数进行调整,包括:比较所述执行效率是否低于阈值;若是,根据所述任务总量及任务执行量计算剩余任务量;根据所述任务时长及当前的时间节点计算剩余时长;根据所述剩余任务量及剩余时长测算需要新增的物理资源;否则,根据所述运行信息记录的相邻两个时间节点的资源使用信息,计算资源利用率;根据所述资源利用率测算需要释放的物理资源;根据测算结果调整所述资源分配参数。在其中一个实施例中,所述当监测到所述执行效率低于阈值时,对所述配置文件中的资源分配参数进行调整,包括:比较所述执行效率是否低于阈值;若是,标记所述Spark任务执行异常,获取所述Spark任务的任务日志;根据所述任务日志进行异常原因定位;若所述异常原因包括物理资源不足,根据所述配置文件记录的资源分配参数生成资源调整提示页面,将所述资源调整提示页面发送至所述终端;使所述终端在所述资源调整提示页面对所述资源分配参数进行调整。一种物理资源分配装置,所述装置包括:资源分配模块,用于接收终端提交的Spark任务及对应的配置文件;从所述配置文件中读取所述Spark任务的资源分配参数,根据所述资源分配参数进行物理资源分配;效率监测模块,用于基于分配的物理资源执行所述Spark任务;在所述Spark任务执行期间,监测所述Spark任务的执行效率;资源调整模块,用于当监测到所述执行效率低于阈值时,对所述配置文件中的资源分配参数进行调整;将所述Spark任务从已分配的物理资源调度至与调整后的资源分配参数相适应的物理资源上继续执行。一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:接收终端提交的Spark任务及对应的配置文件;从所述配置文件中读取所述Spark任务的资源分配参数,根据所述资源分配参数进行物理资源分配;基于分配的物理资源执行所述Spark任务;在所述Spark任务执行期间,监测所述Spark任务的执行效率;当监测到所述执行效率低于阈值时,对所述配置文件中的资源分配参数进行调整;将所述Spark任务从已分配的物理资源调度至与调整后的资源分配参数相适应的物理资源上继续执行。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:接收终端提交的Spark任务及对应的配置文件;从所述配置文件中读取所述Spark任务的资源分配参数,根据所述资源分配参数进行物理资源分配;基于分配的物理资源执行所述Spark任务;在所述Spark任务执行期间,监测所述Spark任务的执行效率;当监测到所述执行效率低于阈值时,对所述配置文件中的资源分配参数进行调整;将所述Spark任务从已分配的物理资源调度至与调整后的资源分配参数相适应的物理资源上继续执行。上述物理资源分配方法、装置、计算机设备和存储介质,根据终端提交的配置文件中记录的Spark任务的资源分配参数,可以为终端提交的Spark任务分配物理资源;基于分配的物理资源,可以执行Spark任务;通过监测所述Spark任务的执行效率,可以根据监测结果对所述配置文件中的资源分配参数进行调整;将所述Spark任务调度至与调整后的资源分配参数相适应的物理资源执行。由于将资源分配参数以配置文件的方式进行单独存储,独立于Spark任务本身,从而可以摆脱Spark任务版本更新的限制灵活自由修改资源分配参数;实时监测Spark任务执行效率,并根据执行效率动态调整分配的物理资源,可以适应Spark任务对物理资源的实际需求,进而可以提高Spark任务执行效率。附图说明图1为一个实施例中物理资源分配方法的应用场景图;图2为一个实施例本文档来自技高网...

【技术保护点】
1.一种物理资源分配方法,所述方法包括:接收终端提交的Spark任务及对应的配置文件;从所述配置文件中读取所述Spark任务的资源分配参数,根据所述资源分配参数进行物理资源分配;基于分配的物理资源执行所述Spark任务;在所述Spark任务执行期间,监测所述Spark任务的执行效率;当监测到所述执行效率低于阈值时,对所述配置文件中的资源分配参数进行调整,将所述Spark任务从已分配的物理资源调度至与调整后的资源分配参数相应的物理资源上继续执行。

【技术特征摘要】
1.一种物理资源分配方法,所述方法包括:接收终端提交的Spark任务及对应的配置文件;从所述配置文件中读取所述Spark任务的资源分配参数,根据所述资源分配参数进行物理资源分配;基于分配的物理资源执行所述Spark任务;在所述Spark任务执行期间,监测所述Spark任务的执行效率;当监测到所述执行效率低于阈值时,对所述配置文件中的资源分配参数进行调整,将所述Spark任务从已分配的物理资源调度至与调整后的资源分配参数相应的物理资源上继续执行。2.根据权利要求1所述的方法,其特征在于,所述接收终端提交的Spark任务及对应的配置文件之前,还包括:接收终端发送的Spark任务开发请求;所述开发请求包含入口函数标识;识别所述入口函数标识对应的函数队列;所述函数队列包括多个业务函数;将多个所述业务函数分别转换为对应的多个基础任务;调用所述入口函数标识对应的群组装饰器将多个所述基础任务封装为多个任务组;配置多个所述任务组的调度顺序,基于所述调度顺序对多个所述任务组进行封装,得到所述Spark任务。3.根据权利要求1所述的方法,其特征在于,所述Spark任务包括Shell脚本;所述Shell脚本预置了对所述配置文件的回调函数;所述从所述配置文件中读取所述Spark任务的资源分配参数,包括:通过执行所述Shell脚本启动所述Spark任务;基于所述回调函数,生成对所述配置文件的回调指令;根据所述回调指令拉取对应的配置文件;从拉取到的配置文件中读取所述资源分配参数。4.根据权利要求1所述的方法,其特征在于,所述基于分配的物理资源执行所述Spark任务,包括:将所述Spark任务拆分为多个任务组;每个任务组具有对应的任务组标识;将所述任务组拆分为多个基础任务;每个基础任务具有对应的日志装饰器;基于分配的物理资源执行多个基础任务,生成每个基础任务的执行日志;利用所述日志装饰器,在相应基础任务的执行日志中添加所述基础任务对应的任务组标识;当所述Spark任务执行完毕时,对记录有相同任务组标识的多个执行日志进行收集,生成每个任务组标识对应的任务日志。5.根据权利要求1所述的方法,其特征在于,所述监测所述Spark任务的执行效率,包括:计算所述Spark任务的任务总量;根据所述任务总量测算所述Spark任务的任务时...

【专利技术属性】
技术研发人员:黄志辉
申请(专利权)人:中国平安人寿保险股份有限公司
类型:发明
国别省市:广东,44

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

1