CN106569883A - 一种分布式任务处理方法及设备 - Google Patents

一种分布式任务处理方法及设备 Download PDF

Info

Publication number
CN106569883A
CN106569883A CN201510654176.3A CN201510654176A CN106569883A CN 106569883 A CN106569883 A CN 106569883A CN 201510654176 A CN201510654176 A CN 201510654176A CN 106569883 A CN106569883 A CN 106569883A
Authority
CN
China
Prior art keywords
task
code
cluster
versatility
resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510654176.3A
Other languages
English (en)
Other versions
CN106569883B (zh
Inventor
张凤婷
蔡永保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510654176.3A priority Critical patent/CN106569883B/zh
Publication of CN106569883A publication Critical patent/CN106569883A/zh
Application granted granted Critical
Publication of CN106569883B publication Critical patent/CN106569883B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种分布式任务处理方法。在初始化时将通用代码分发至集群的其他节点中,当接收到用户提交的任务时,判断与任务对应的任务代码是否包含于集群的通用代码中,并在任务代码包含于通用代码中时直接根据通用代码运行与任务对应的运算逻辑。从而弥补了传统方案中分布式任务运行启动速度和灵活性稳定不可兼得的劣势,在业务变更中能够支持快速响应的同时又保证了整体项目的稳定性。

Description

一种分布式任务处理方法及设备
技术领域
本发明涉及通信技术领域,特别涉及一种分布式任务处理方法。本发明同时还涉及一种分布式任务处理设备。
背景技术
分布式计算是一种计算方法,和集中式计算是相对的。随着计算技术的发展,有些应用需要非常巨大的计算能力才能完成,如果采用集中式计算,需要耗费相当长的时间来完成。分布式计算将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。
如图1所示,为现有技术中集群执行任务逻辑的流程示意图,在目前使用集群执行任务逻辑时,技术人员首先要先通过用户提交任务到主节点中,接着集群主节点进行代码的分发,分发的目的地是集群的其他的节点。其他节点在接收到运行任务的代码后启动集群机器,初始化任务运行需要的资源。接着集群的节点开始运行主节点分发任务,将集群中任务情况汇报给集群的主节点进行统一汇总,决策。最后任务逻辑运行完毕。需要对资源进行回收释放。
通过以上过程可以看出,由于每次提交任务都要启动集群,分发代码,同时要初始化集群的资源,在集群机器中开启处理逻辑真正进行逻辑运算,真正进行业务逻辑处理。整个步骤中每个任务都要耗费大量的非任务逻辑的运行时间,对任务结果实时性要求较高的时候,整个集群的响应延迟较为严重,严重影响用户体验。而为了能实时使用的计算结果,现有的使用场景对于集群运算响应时间的要求越来越高,基于目前采取的分布式任务运算的启动逻辑不能满足实时使用的需求的情况,需要对原本的方式进行优化。
对于上述问题,业内常用的方案是抽象出可枚举、不可变运算逻辑接口。使用的方式是将抽象业务逻辑接口部署在集群中。在每个任务编写时调用定义好的接口。任务的逻辑实现就是调用一系列接口的总和,于是任务在运行时就能等于调用一系列的运算接口。
然而,发明人在实现本发明的过程中发现,在使用业内常用抽象出可枚举、不可变运算逻辑接口将提前部署在集群中的方案时,首先要对业务足够的抽象,同时需要提前抽象出可能需要使用的接口,在任务代码没有开始前就提早进行实现。整体框架的部署也必须在任务开始之前。由于互联网企业业务发展快,业务逻辑变化频繁,不可变接口是不够灵活的。在业务上需要新添逻辑接口时,就需要将代码添加到整个运算框架中。同时每次逻辑接口更改时,就需要更改整体框架的代码,也需要更改运行任务的代码。
由此可见,如何在节省资源以及提高灵活性的前提下,尽量减少集群运算响应时间以提高实时使用的计算结果,以及使分布式任务运算的启动逻辑满足实时使用的需求,成为本领域技术人员亟待解决的技术问题。
发明内容
本发明提供了一种分布式任务处理方法,用以减少任务提交时耗费的时间以及提升运行效率,该方法包括:
当接收到用户提交的任务时,判断与所述任务对应的任务代码是否包含于集群的通用代码中,所述通用代码是在初始化时分发至所述集群的其他节点中;
若所述任务代码包含于所述通用代码中,根据所述通用代码运行与所述任务对应的运算逻辑。
优选地,还包括:
若所述任务代码的部分或全部不包含于所述通用代码中,将所述通用代码中所不包含的任务代码动态加载生效于所述集群;
根据集群加载后的通用代码运行与所述任务对应的运算逻辑。
优选地,在接收到用户提交的任务之前,还包括:
向所述集群中的节点分发所述通用代码,并进行初始化资源处理;
判断当前是否存在可回收资源;
若当前存在可回收资源,将所述可回收资源进行回收处理;
若当前不存在可回收资源,在预设的时间阈值后判断当前是否存在可回收资源。
优选地,在根据所述通用代码运行与所述任务对应的运算逻辑或根据集群加载后的通用代码运行与所述任务对应的运算逻辑之后,还包括:
当所述运算逻辑执行完毕后,将用于执行所述运算逻辑的资源进行回收处理。
相应地,本发明还提出了一种分布式任务处理设备,该方法包括:
判断模块,在当所述分布式任务处理设备接收到用户提交的任务时判断与所述任务对应的任务代码是否包含于集群的通用代码中,所述通用代码是在初始化时分发至所述集群的其他节点中;
运行模块,在所述任务代码包含于所述通用代码时根据所述通用代码运行与所述任务对应的运算逻辑。
优选地,还包括:
加载模块,在所述任务代码的部分或全部不包含于所述通用代码时将所述通用代码中所不包含的任务代码动态加载生效于所述集群,并指示所述运行模块根据集群加载后的通用代码运行与所述任务对应的运算逻辑。
优选地,还包括:
初始化模块,向所述集群中的节点分发所述通用代码,并进行初始化资源处理;
回收模块,判断当前是否存在可回收资源,在当前存在可回收资源时将所述可回收资源进行回收处理,以及在当前不存在可回收资源时在预设的时间阈值后判断当前是否存在可回收资源。
优选地,所述回收模块,还用于在所述运算逻辑执行完毕后,将用于执行所述运算逻辑的资源进行回收处理。
由此可见,通过应用本发明的技术方案,在初始化时将通用代码分发至集群的其他节点中,当接收到用户提交的任务时,判断与任务对应的任务代码是否包含于集群的通用代码中,并在任务代码包含于通用代码中时直接根据通用代码运行与任务对应的运算逻辑。从而弥补了传统方案中分布式任务运行启动速度和灵活性稳定不可兼得的劣势,在业务变更中能够支持快速响应的同时又保证了整体项目的稳定性。
附图说明
图1为现有技术中集群执行任务逻辑的流程示意图;
图2为本发明提出的一种分布式任务处理方法的流程示意图;
图3为本发明提出的一种分布式任务处理设备的结构示意图。
具体实施方式
有鉴于现有技术中的问题,本发明提出了一种分布式任务处理方法,通过在分布式任务启动之前预先启动需要的集群机器以及初始化所有需要的通用资源,这样在真正任务运行时了复用这些初始化的资源,使得多个任务能够共享预先初始好的资源并同时共享存储。从减少任务提交时耗费的时间以及提升运行效率。
如图2所示,为本发明提出的一种分布式任务处理方法的流程示意图,包括以下步骤:
S201,当接收到用户提交的任务时,判断与所述任务对应的任务代码是否包含于集群的通用代码中,所述通用代码是在初始化时分发至所述集群的其他节点中。
出于任务提交流程的限制,任务的提交者每次任务提交都要通过手工或者脚本程序,将运行的任务的代码进行编译,打包,提交到集群中。集群的主节点根据调度策略将需要打包好的任务分发到运行的集群中,而集群的其他节点在接受到主节点分发的任务代码后时,才进行任务程序的启动,才开始将任务中各种需要运行到的资源初始化。在初始化完毕后,真正的任务逻辑才开始执行执行。整套流程需要花费很长的时间在于非关键运算上,导致总体任务的返回是时间也会整体变得长。针对该问题,本发明将传统的任务提交时才进行的共用操作(包含分发代码操作和初始化资源操作)抽象出来,使得一组需要相近资源的任务能够共用一套资源管理方案,并提早启动加载、发布等操作,实现资源的初始化及回收等管理职责。
在优选的实施例中,在该步骤之前,首先向所述集群中的节点分发所述通用代码,并进行初始化资源处理,随后判断当前是否存在可回收资源,基于以下两种情况区别处理:
(1)若当前存在可回收资源,将所述可回收资源进行回收处理;
(2)若当前不存在可回收资源,在预设的时间阈值后判断当前是否存在可回收资源。
以上流程通过在用户在提交任务之前就先启动共用资源管理的方案,提前完成了“分发通用代码、启动集群、初始化连接、初始化各种其他可能用的资源”等任务,保证任务提交时公用资源准备完毕。
S202,若所述任务代码包含于所述通用代码中,根据所述通用代码运行与所述任务对应的运算逻辑。
由于提交任务时就已经启动了本发明的资源管理方案,如果使用通用代码,而这部分任务代码如果已经提交在集群中,那么则不需要进行任务代码的加载就可以直接运行逻辑;相应地,如果需要运行的部分任务代码不在集群中,那么则需要通过动态加载的方式将新增代码加载生效在集群中,这样就能在不用停机部署的情况下直接通过热部署的方式提供服务。因此在本发明优选的实施例中,若所述任务代码的部分或全部不包含于所述通用代码中,将所述通用代码中所不包含的任务代码动态加载生效于所述集群;根据集群加载后的通用代码运行与所述任务对应的运算逻辑。
在S102执行完毕后,任务运行逻辑也相应地结束,为了进一步提高利用效率,本申请当所述运算逻辑执行完毕后将用于执行所述运算逻辑的资源进行回收处理。这样不用管理资源的释放和销毁,直接交给资源管理系统处理。通过明确职责和复用的两种方式,让专有任务运行专有逻辑,不需要管理其他非任务相关的方式,可以极大的减少任务运行中,非运算逻辑代码占用的时间。
通过以上执行方案,在业务频繁变化的过程中,不用更改整套计算框架,而是只是需要更改了任务代码。这种方案不影响其他任务运行,直接降低业务变化更改代码引入的错误风险。
为了实现以上技术目的,本发明还提出了一种分布式任务处理设备,如图3所示,该方法包括:
判断模块310,在当所述分布式任务处理设备接收到用户提交的任务时判断与所述任务对应的任务代码是否包含于集群的通用代码中,所述通用代码是在初始化时分发至所述集群的其他节点中;
运行模块320,在所述任务代码包含于所述通用代码时根据所述通用代码运行与所述任务对应的运算逻辑。
在具体的应用场景中,还包括:
加载模块,在所述任务代码的部分或全部不包含于所述通用代码时将所述通用代码中所不包含的任务代码动态加载生效于所述集群,并指示所述运行模块根据集群加载后的通用代码运行与所述任务对应的运算逻辑。
在具体的应用场景中,还包括:
初始化模块,向所述集群中的节点分发所述通用代码,并进行初始化资源处理;
回收模块,判断当前是否存在可回收资源,在当前存在可回收资源时将所述可回收资源进行回收处理,以及在当前不存在可回收资源时在预设的时间阈值后判断当前是否存在可回收资源。
在具体的应用场景中,所述回收模块,还用于在所述运算逻辑执行完毕后,将用于执行所述运算逻辑的资源进行回收处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims (8)

1.一种分布式任务处理方法,其特征在于,该方法包括:
当接收到用户提交的任务时,判断与所述任务对应的任务代码是否包含于集群的通用代码中,所述通用代码是在初始化时分发至所述集群的其他节点中;
若所述任务代码包含于所述通用代码中,根据所述通用代码运行与所述任务对应的运算逻辑。
2.如权利要求1所述的方法,其特征在于,还包括:
若所述任务代码的部分或全部不包含于所述通用代码中,将所述通用代码中所不包含的任务代码动态加载生效于所述集群;
根据集群加载后的通用代码运行与所述任务对应的运算逻辑。
3.如权利要求1或2任一项所述的方法,其特征在于,在接收到用户提交的任务之前,还包括:
向所述集群中的节点分发所述通用代码,并进行初始化资源处理;
判断当前是否存在可回收资源;
若当前存在可回收资源,将所述可回收资源进行回收处理;
若当前不存在可回收资源,在预设的时间阈值后判断当前是否存在可回收资源。
4.如权利要求3所述的方法,其特征在于,在根据所述通用代码运行与所述任务对应的运算逻辑或根据集群加载后的通用代码运行与所述任务对应的运算逻辑之后,还包括:
当所述运算逻辑执行完毕后,将用于执行所述运算逻辑的资源进行回收处理。
5.一种分布式任务处理设备,其特征在于,该方法包括:
判断模块,在当所述分布式任务处理设备接收到用户提交的任务时判断与所述任务对应的任务代码是否包含于集群的通用代码中,所述通用代码是在初始化时分发至所述集群的其他节点中;
运行模块,在所述任务代码包含于所述通用代码时根据所述通用代码运行与所述任务对应的运算逻辑。
6.如权利要求1所述的设备,其特征在于,还包括:
加载模块,在所述任务代码的部分或全部不包含于所述通用代码时将所述通用代码中所不包含的任务代码动态加载生效于所述集群,并指示所述运行模块根据集群加载后的通用代码运行与所述任务对应的运算逻辑。
7.如权利要求5或6任一项所述的设备,其特征在于,还包括:
初始化模块,向所述集群中的节点分发所述通用代码,并进行初始化资源处理;
回收模块,判断当前是否存在可回收资源,在当前存在可回收资源时将所述可回收资源进行回收处理,以及在当前不存在可回收资源时在预设的时间阈值后判断当前是否存在可回收资源。
8.如权利要求7所述的设备,其特征在于,
所述回收模块,还用于在所述运算逻辑执行完毕后,将用于执行所述运算逻辑的资源进行回收处理。
CN201510654176.3A 2015-10-10 2015-10-10 一种分布式任务处理方法及设备 Active CN106569883B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510654176.3A CN106569883B (zh) 2015-10-10 2015-10-10 一种分布式任务处理方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510654176.3A CN106569883B (zh) 2015-10-10 2015-10-10 一种分布式任务处理方法及设备

Publications (2)

Publication Number Publication Date
CN106569883A true CN106569883A (zh) 2017-04-19
CN106569883B CN106569883B (zh) 2020-08-04

Family

ID=58507886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510654176.3A Active CN106569883B (zh) 2015-10-10 2015-10-10 一种分布式任务处理方法及设备

Country Status (1)

Country Link
CN (1) CN106569883B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033748A (zh) * 2010-12-03 2011-04-27 中国科学院软件研究所 一种数据处理流程代码的生成方法
CN102523104A (zh) * 2011-11-30 2012-06-27 中国电子科技集团公司第二十八研究所 一种网络化仿真运行支撑系统及方法
CN103049326A (zh) * 2013-01-16 2013-04-17 浪潮(北京)电子信息产业有限公司 在作业管理与调度系统中管理作业程序的方法和系统
CN104252391A (zh) * 2013-06-28 2014-12-31 国际商业机器公司 用于在分布式计算系统中管理多个作业的方法和装置
US20150160932A1 (en) * 2013-12-11 2015-06-11 International Business Machines Corporation Recognizing operational options for stream operators at compile-time

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102033748A (zh) * 2010-12-03 2011-04-27 中国科学院软件研究所 一种数据处理流程代码的生成方法
CN102523104A (zh) * 2011-11-30 2012-06-27 中国电子科技集团公司第二十八研究所 一种网络化仿真运行支撑系统及方法
CN103049326A (zh) * 2013-01-16 2013-04-17 浪潮(北京)电子信息产业有限公司 在作业管理与调度系统中管理作业程序的方法和系统
CN104252391A (zh) * 2013-06-28 2014-12-31 国际商业机器公司 用于在分布式计算系统中管理多个作业的方法和装置
US20150160932A1 (en) * 2013-12-11 2015-06-11 International Business Machines Corporation Recognizing operational options for stream operators at compile-time

Also Published As

Publication number Publication date
CN106569883B (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN107087019B (zh) 一种基于端云协同计算架构的任务调度方法及装置
Rabbani et al. On tackling virtual data center embedding problem
US9307019B2 (en) Apparatus, systems and methods for deployment and management of distributed computing systems and applications
CN103797462B (zh) 一种创建虚拟机的方法和装置
CN105159753A (zh) 加速器虚拟化的方法、装置及集中资源管理器
CN104657220A (zh) 混合云中基于截止时间和费用约束的调度模型及方法
CN105183554A (zh) 高性能计算与云计算混合计算系统及其资源管理方法
CN106033373A (zh) 一种云计算平台中虚拟机资源调度方法和调度系统
CN104486234A (zh) 一种将业务交换机卸载到物理网卡的方法及服务器
CN105404542A (zh) 云计算系统及在其上运行高性能计算的方法
CN103873534A (zh) 一种应用集群迁移方法及装置
CN105740085A (zh) 容错处理方法及装置
CN103618762A (zh) 一种基于aop的企业服务总线状态预处理系统及方法
CN109347716B (zh) 消费者vnf的实例化方法及装置
CN104123135B (zh) 一种统一后台接口的方法及装置
CN105933136B (zh) 一种资源调度方法及系统
CN112463296A (zh) 一种创建虚拟机的方法及装置
CN112231053A (zh) 一种负载均衡服务分配方法及装置
Zhang et al. Repeatable multi-dimensional virtual network embedding in cloud service platform
CN105991750B (zh) 一种业务集群的业务调度方法、设备和业务集群
CN106569883A (zh) 一种分布式任务处理方法及设备
CN108287762B (zh) 分布式计算交互式模式使用资源优化方法以及计算机设备
CN116243930A (zh) 多版本并行环境设计方法及搭建系统
Li et al. Innovation in advanced manufacturing driven by supercomputing
CN113326098B (zh) 支持kvm虚拟化与容器虚拟化的云管平台

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200918

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200918

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman, British Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Patentee before: Alibaba Group Holding Ltd.