CN114840343A - 基于分布式***的任务调度方法及*** - Google Patents
基于分布式***的任务调度方法及*** Download PDFInfo
- Publication number
- CN114840343A CN114840343A CN202210526284.2A CN202210526284A CN114840343A CN 114840343 A CN114840343 A CN 114840343A CN 202210526284 A CN202210526284 A CN 202210526284A CN 114840343 A CN114840343 A CN 114840343A
- Authority
- CN
- China
- Prior art keywords
- task
- node
- information
- distributed system
- working
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明提供了一种基于分布式***的任务调度方法及***,任务调度方法包括:向分布式***中既有的主节点和/或从节点中部署采集所属工作节点的资源属性信息的标签句柄;通过标签句柄采集待加入分布式***的工作节点的节点属性信息,并向待加入分布式***的工作节点添加标签信息;分布式***接收任务,获取任务被分配到的工作节点对任务的资源消耗记录及标签信息,以在分布式***接收新任务时,采集各工作节点基于执行任务的资源消耗记录及标签信息,以确定响应新任务的工作节点。通过本申请,实现了对不同任务匹配工作节点过程中的合理性,从而使得分布式***在部署及运行过程中不需要考虑工作节点的机器性能差异。
Description
技术领域
本发明涉及计算机资源管理技术领域,尤其涉及一种基于分布式***的任务调度方法及基于分布式***的任务调度***。
背景技术
分布式***是由多台计算机和通信的软件通过计算机网络连接组成(本地局域网或者广域网)。分布式***是建立在网络之上的软件***,因此具有高度的内聚性和透明性。分布式***具有可靠性、高容错性、可扩展性、部署灵活、计算速度快及高性能等诸多技术优势。因此,在诸如在线购物、金融支付、数据中心、高并发访问等技术场景中被广泛地应用。
用户(或者管理员)使用Web、APP、SDK,通过HTTP、TCP连接到分布式***。为了实现高并发与高可用的性能,分布式***一般都是多个节点(即本申请中的Worker节点,或者工作节点)提供相同的服务。由此,在分布式***的软件设计层面,现有技术更侧重解决分布式事务、分布式锁、分布式Session或者数据一致性的技术问题,并未对构成分布式***的各个工作节点的性能予以考虑。同时,由于现有技术中的分布式***对任务(Task)进行调度时,不考虑各个节点的所具有的机器性能,而更关注各个工作节点的状态(例如,是否正常或是否宕机等),因此如果无法有效且充分地利用各个工作节点的性能,将导致分布式***存在理论上的性能瓶颈。最后,由于每个任务所需要的消耗的计算和/或存储资源是不同的,因此根据每个任务匹配合适的工作节点也有利于充分发挥分布式***的性能,并防止节点资源的浪费或者节点资源无法满足任务需求的情形。目前的分布式***的任务调度策略存在一定缺陷。
有鉴于此,有必要对现有技术中的基于分布式***的任务调度方法予以改进,以解决上述问题。
发明内容
本发明的目的在于揭示一种基于分布式***的任务调度方法及基于分布式***的任务调度***,用以实现对分布式***中的节点对资源需求不同的任务的合理调度,以对任务分配具有差异化配置的节点的合理调度,并提高分布式***中工作节点所具有的差异化资源的利用率。
为实现上述目的之一,本发明提供了一种基于分布式***的任务调度方法,包括:
向分布式***中既有的主节点和/或从节点中部署采集所属工作节点的资源属性信息的标签句柄;
通过所述标签句柄采集待加入所述分布式***的工作节点的节点属性信息,并向所述待加入所述分布式***的工作节点添加标签信息;
所述分布式***接收任务,获取所述任务被分配到的工作节点对所述任务的资源消耗记录及所述标签信息,以在分布式***接收新任务时,采集各工作节点基于执行任务的资源消耗记录及标签信息,以确定响应所述新任务的工作节点。
作为本发明的进一步改进,所述标签句柄采集待加入所述分布式***的工作节点的节点属性信息后,通过标签句柄预设的标签规则生成标签信息,或者,对已经保存的标签信息予以修改后保存。
作为本发明的进一步改进,所述分布式***接收任务或者新任务后还包括:
根据任务或者新任务的函数签名和/或哈希值执行取样操作取得任务取样信息,并保存任务取样信息与当前标签信息的对应关系。
作为本发明的进一步改进,当分布式***接收后续的新任务时,查询所述任务取样信息与当前标签信息的对应关系,以确定响应相似任务所匹配的工作节点。
作为本发明的进一步改进,所述任务调度方法还包括:在确定主节点与从节点后,对主节点与从节点执行节点信息同步,并保存同步后的节点信息,所述节点信息为加入所述分布式***的工作节点响应新任务的前一次任务后所形成的资源消耗记录。
作为本发明的进一步改进,所述任务调度方法还包括:通过返回值记录所述加入所述分布式***的工作节点响应新任务后所形成的资源消耗记录,然后将返回值写入标签句柄中的标签信息或者修改标签句柄中的标签信息以形成当前标签信息,并将所述当前标签信息对所述加入所述分布式***的工作节点执行标记操作;
当分布式***接收新任务时调用所述当前标签信息,以确定响应所述新任务的工作节点的调度策略,其中,所述响应所述新任务的工作节点为待加入所述分布式***的工作节点或者分布式***在接收新任务时既有的工作节点。
作为本发明的进一步改进,所述任务调度方法还包括:主节点将所述当前标签信息同步至从节点,并由所述主节点侦测工作节点的性能指标,以根据所述性能指标确定工作节点的优先级;
其中,性能指标由响应CPU密集型任务、响应内存密集型任务或者响应IO密集型任务中的一种或者任意几种密集型任务的性能数据单独或者共同定义。
基于相同发明思想,本发明还揭示了一种基于分布式***的任务调度***,包括:
标签句柄与调度器,所述标签句柄部署节点属性信息采集单元及任务信息取样单元;
所述标签句柄部署于分布式***中既有的主节点和/或从节点中,以通过所述节点属性信息采集单元采集所属工作节点的资源属性信息以及集待加入所述分布式***的工作节点的节点属性信息,并向所述待加入所述分布式***的工作节点添加标签信息;
所述分布式***接收任务,由所述节点属性信息采集单元获取所述任务被分配到的工作节点对所述任务的资源消耗记录及所述标签信息,以在分布式***接收新任务时,由所述任务信息取样单元采集各工作节点基于执行任务的资源消耗记录及标签信息,以由调度器根据资源消耗记录及标签信息确定响应所述新任务的工作节点。
作为本发明的进一步改进,还包括:节点信息存储单元;
所述标签句柄采集待加入所述分布式***的工作节点的节点属性信息后,通过节点属性信息采集单元预设的标签规则生成标签信息,并保存所述标签信息至所述节点信息存储单元,或者,对节点信息存储单元已经保存的标签信息予以修改后保存。
作为本发明的进一步改进,还包括:任务信息存储单元;
所述分布式***接收任务或者新任务后还包括:
通过所述任务信息取样单元根据任务或者新任务的函数签名和/或哈希值执行取样操作取得任务取样信息,并保存任务取样信息与当前标签信息的对应关系至所述任务信息存储单元。
作为本发明的进一步改进,当分布式***接收后续的新任务时,通过所述任务信息取样单元自所述任务信息存储单元查询所述任务取样信息与当前标签信息的对应关系,以确定响应相似任务所匹配的工作节点。
作为本发明的进一步改进,所述节点属性信息采集单元确定主节点与从节点,并在确定主节点与从节点后,对主节点与从节点执行节点信息同步,并将同步后的节点信息保存至任务信息存储单元,所述节点信息为加入所述分布式***的工作节点响应新任务的前一次任务后所形成的资源消耗记录。
作为本发明的进一步改进,所述任务信息取样单元通过返回值记录所述加入所述分布式***的工作节点响应新任务后所形成的资源消耗记录,然后将返回值写入或者修改标签句柄中的标签信息以形成当前标签信息,并将所述当前标签信息对所述加入所述分布式***的工作节点执行标记操作,并保存至任务信息取样单元;
当分布式***接收新任务时由调度器自所述任务信息取样单元调用所述当前标签信息,以确定响应所述新任务的工作节点的调度策略,其中,所述响应所述新任务的工作节点为待加入所述分布式***的工作节点或者分布式***在接收新任务时既有的工作节点。
作为本发明的进一步改进,主节点中的节点属性信息采集单元将所述当前标签信息同步至从节点,并由所述主节点侦测工作节点的性能指标,以根据所述性能指标确定工作节点的优先级;
其中,性能指标由响应CPU密集型任务、响应内存密集型任务或者响应IO密集型任务中的一种或者任意几种密集型任务的性能数据单独或者共同定义。
与现有技术相比,本发明的有益效果是:
在申请所揭示的基于分布式***的任务调度方法及任务调度***中,将标签句柄同时采集工作节点的资源消耗记录并执行添加标签以标记工作节点的优先级,以作为后续被调度器重新确定为执行任务或者新任务的工作节点,从而使得分布式***在部署、运行过程及对工作节点执行调度过程中不需要考虑执行任务所依赖的工作节点的机器性能差异,并适用于对由不同架构的机器所定义的工作节点的合理调度。
附图说明
图1为本发明一种基于分布式***的任务调度方法的整体流程图;
图2为应用图1所示出的本发明一种基于分布式***的任务调度方法的一种基于分布式***的任务调度***的整体拓扑图;
图3为标签句柄将资源池中的工作节点加入分布式***的示意图;
图4为基于分布式***的任务调度***采用图1所示出的基于分布式***的任务调度方法采集各工作节点基于执行任务的资源消耗记录及标签信息以确定响应新任务的工作节点的示意图;
图5为通过标签句柄采集待加入分布式***的工作节点的节点属性信息并向待加入分布式***的工作节点添加标签信息,以及通过返回值记录加入分布式***的工作节点响应新任务的任务后所形成的资源消耗记录,返回值写入或者修改标签句柄中的标签信息以形成当前标签信息,将当前标签信息对加入分布式***的工作节点执行标记操作两个阶段的示意图;
图6为应用图1所示出的本发明一种基于分布式***的任务调度方法的一种基于分布式***的任务调度***在一种变形例中的整体拓扑图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
在详细阐述本申请各个实施例之前,对各实施例中所涉及的主要技术术语及英文缩写的含义予以必要解释或者定义。
术语“Worker节点”是指在分布式***中实际执行任务的机器。
术语“Leader节点”是指分布式***中负责任务分配的机器,并与术语“主节点”具等同技术含义。
术语“Follower节点”是指分布式***中的作为Leader节点的后补工作节点,并与术语“从节点”具等同技术含义。
术语“机器”是指负责计算或者存储或者通信或者逻辑判断等一种或者几种功能的物理装置或者虚拟装置,例如物理计算机。
术语“计算密集型任务”是指每个请求的命令中通常包含不同的参数值,很难重用前一次计算的结果的任务,所以要按照约定的业务逻辑重新计算,并按照约定格式的返回数据,且计算在总耗时中占比较大的任务。
术语“IO密集型任务”是指文件读写任务、数据库读写任务、网络请求等任务,且消耗CPU资源较少的任务。
以下通过下述若干实施例对发明一种基于分布式***的任务调度方法(以下简称“任务调度方法”)及基于该任务调度方法的分布式***的任务调度***(以下简称“任务调度***”)的具体实现过程予以详细阐述。包含该任务调度方法的任务调度***运行于队列模型中。
简要而言,本发明所揭示的任务调度方法及任务调度***旨在对用户发起的访问请求所对应的任务从分布式***100中或者挂载至分布式***100的装置所形成的资源池中调度并确定匹配的工作节点,并考量每个或者多个待加入分布式***100的工作节点所对应的机器性能,尤其是考虑机器所具有的性能差异及被执行的任务所性能要求的差异,以确保最终执行任务的机器满足或者恰好满足任务的运行需求,从而实现对工作节点的灵活调度及对机器所具有的资源(CPU资源、内存资源等)的合理调度。同时,采用前述任务调度方法及利用该任务调度方法的任务调度***可以最大程度地简化组建分布式***100时对机器性能的考虑因素,因为在后续的任务调度过程中可以遍历确定部分或者全部的工作节点,并根据当前任务或者后续执行的新任务确定出符合该当前任务或者后续执行的新任务所匹配的工作节点。因此,既使机器性能存在差异,依然不影响该机器被匹配为执行某个对资源消耗程度不同任务并作为待加入分布式***100的工作节点。同时。本发明还可实现对X86架构、ARM架构或者MIPS架构的机器予以调度。此外,基于向既有的主节点和/或从节点中部署标签句柄20,可在调度器40的共同配合下,实现基于动态的主节点和/或从节点的集群10的动态配置及缩扩容操作,并及时响应并匹配出最适合的某一个具体任务的执行主体。本申请所揭示的任务调度方法及任务调度***避免采用现有技术基于工作节点所具有的机器性能的权重系数所确定调度调度策略的主观性与盲目性。本发明所依赖的具体技术方案如下所述。
参图1至图6所示出的本发明基于分布式***的任务调度方法的一种具体实施方式。
示例性地,参图2所示,分布式***100中包含一个主节点12及两个从节点(即,从节点11与从节点13)。机器为分布式***100中实际执行任务的执行主体,并接收主节点12所分配的任务。本实施例中,下述任务、新任务均属于任务,并旨在对i个工作节点中的一个或者多个具体的工作节点通过调度器40予以调度,并选择符合响应任务的一个或者多个具体的工作节点加入集群20,i个工作节点属于资源池30的一部分,资源池30逻辑上可属于分布式***100(参图2所示),可挂载至分布式***100(参图6所示)。资源池30中包含i个工作节点,即工作节点31~工作节点3i(即,i个工作节点,i取大于或者等于1的正整数)也可均由机器组成。集群10中的主节点12与多个从节点通过网络连接。从节点11及从节点13作为主节点12的后补节点,可保障主节点12宕机等不可用时,被选举为新的主节点,并纳管资源池30中的i个工作节点,并确定某个具体的任务由哪个工作节点予以执行。分布式***100中的主节点12、两个从节点及i个工作节点均由机器配置而成。可选地,集群10可为Hadoop集群。
参图1所示,基于分布式***的任务调度方法,包括以下步骤S1至步骤S3。
首先,执行步骤S1、向分布式***100中既有的主节点和/或从节点中部署采集所属工作节点的资源属性信息的标签句柄20。在分布式***100组建后并在主节点12已经将某个任务通过调度器40将一个或者多个工作节点予以分配并运行后,前述一个或者多个工作节点视为主节点12所属工作节点,从节点11或者从节点13亦如此。任务(Task)在队列模型(Queue Module)中被逐一执行时,需要对已经被加入至集群10中的工作节点对正在执行的任务被当前状态中已经被加入至集群10的工作节点在执行过程中所确定的资源属性信息。可选的,主节点12所部署的标签句柄20还可独立地采集资源池30中的部分或者全部的工作节点的资源属性信息,以通过对当前正在运行的任务是否可以被已经加入至集群10中的工作节点(即,既有的工作节点)是否满足任务运行需求,并在响应任务的工作节点的机器性能不满足任务时,将前述既有的工作节点踢出集群10,并从资源池30中根据资源池30中未加入集群10的工作节点31~3i所分别具有的机器性能,并触发将尚未加入集群10的工作节点执行动态加入集群10或者脱离集群10的工作节点调度操作。尤其地,通过本申请中,可随意地对资源池30中的某个工作节点的配置予以修改,或者任意地向资源池30中添加机器以形成作为待加入集群10的工作节点。因此,在部署资源池30的过程中不考虑机器性能的差异,且任何配置的机器都可以根据任务的侧重类型在后续的工作节点匹配过程中予以灵活地予以匹配。
示例性地,可仅在主节点12中部署标签句柄20,并通过主节点与从节点间的同步机制予以同步以实现对当前标签信息的同步及节点信息的同步。通过对主节点12中部署集所属工作节点的资源属性信息的标签句柄20,可实时获悉已经被加入集群10的一个或者多个工作节点对正在执行的任务所导致的资源消耗情况,从而判断后续是否需要在响应用户发起的新的任务的访问请求时,以及是否需要向集群10中加入新的工作节点以满足当前任务或者后续的新任务的执行。当前任务及后续的新任务均是满足队列模型中的任务队列(Task Queue),并满足用户程序自定义场景、用户自定义的定时任务场景或者非当前Reactor线程调用Channel的方法(推送***)场景,具有更好的适应性。尤其需要说明的是,在本申请中,主节点12中部署集所属的工作节点并不要求某个工作节点已经被实际地加入集群10,例如,某个工作节点之前已经执行过类似的任务,当该任务被执行完毕后可将该工作节点踢出集群,此时保存任务取样信息与标签信息的对应关系。结合后续实施例可知,可进一步将前述任务取样信息与标签信息的对应关系保存至任务信息存储单元24中,由此使得在后续执行相同或者相似的任务时,可通过任务信息取样单元23的取样结果在任务信息存储单元24中执行查询操作,以根据任务取样信息与标签信息的对应关系直接确定逻辑上位于资源池30中并对应的工作节点,并直接将之前已经保存过对应关系的工作节点加入至集群10,并直接响应并执行该任务。
如果当前状态中已经被加入到集群10中的一个或者多个工作节点所具有的剩余资源(例如CPU资源、内存资源、磁盘资源、网络资源)是否满足任务需求,尤其是需要区分响应CPU密集型任务、响应内存密集型任务及响应IO密集型任务,从而保证每个任务所实际需要消耗的资源及对工作节点机器性能的要求。工作节点的资源属性信息是描述工作节点对响应某种任务时所具有的机器性能的描述参数,对于CPU密集型任务、响应内存密集型任务及响应IO密集型任务中的一种或者几种任务类型单独或者共同定义,因此满足任务运行所需要的机器性能及状态也是需要区分的。因此,对主节点12在当前状态中所属工作节点或者后续被加入集群10的工作节点的资源属性信息予以侦测,可以为后续对任务50匹配出最合理的工作节点提供准确的查考依据。需要理解是的,本申请中对工作节点31~工作节点3i所执行的调度操作包括将一个或者多个工作节点加入集群10的加入操作,也包括将集群10中的一个或者多个工作节点踢出集群10的踢出操作。
需要说明的是,在本实施例中,IO密集型任务包括磁盘IO任务及网络IO任务,磁盘IO任务包括文件读写任务、数据迁移、数据备份、镜像文件迁移操作等任务;网络IO任务包括HTTP请求、远程数据库读写、远程Redis读写等任务。
标签句柄20采集待加入分布式***100的工作节点的节点属性信息后,通过标签句柄20预设的标签规则生成标签信息,或者,对已经保存的标签信息予以修改后保存。参图3及图4所示,当分布式***100收到任务50后,标签句柄20对任务50进行任务取样操作,以确定任务50所对应的任务类型(即,该任务是CPU密集型任务、响应内存密集型任务及响应IO密集型任务中的一种还是几种的组合)。标签句柄20执行任务取样操作完成后,将其所确定的任务信息标记发送至调度器40,以为后续调度器40执行工作节点的调度操作提供依据。调度器40将任务信息标记下发至资源池30后可从资源池30中确定匹配的一个或者多个工作节点,并将匹配的工作节点上报至调度器40,以执行后续的将工作节点加入至集群10中的加入操作。调度器40在将一个或者多个工作节点执行调度并加入集群10后,调度器40返回任务执行结果并发送至标签句柄20。
然后,执行步骤S2、通过标签句柄20采集待加入分布式***100的工作节点的节点属性信息,并向待加入分布式***100的工作节点添加标签信息。如果当前状态中主节点12所属的一个或者多个工作节点不满足任务运行需求时,则需要向集群10中加入新的一个或者多个工作节点。由此,标签句柄20根据当前状态中主节点12采集到的所属工作节点资源属性信息确定当前任务所依赖的资源属性信息,以确定后续的工作节点调度操作。同时,向待加入分布式***100的工作节点添加标签信息,可便于标签句柄20在响应当前任务或者后续的新任务时,可根据前述标签信息直接调用资源池30中的一个或者多个工作节点。通常地,主节点12中的标签句柄20可持续地采集待加入分布式***100的工作节点的节点属性信息,并将采集到的节点属性信息同步至其他的从节点。
最后,执行步骤S3、分布式***100接收任务,获取任务被分配到的工作节点对任务的资源消耗记录及标签信息,以在分布式***100接收新任务时,采集各工作节点基于执行任务的资源消耗记录及标签信息,以确定响应新任务的工作节点。步骤S3中的任务既可被理解为当前状态中主节点12已经由调度器40加入集群10中的一个或者多个工作节点所响应某个任务,也可被理解为已经被标记资源消耗记录及标签信息的工作节点所执行的任务(即新任务);至于已经被标记资源消耗记录及标签信息的工作节点是否被调度器40加入至集群10中在所不问。因此,在后续响应新任务的事件中,可根据工作节点基于执行任务的资源消耗记录及标签信息,准确地调用到匹配的一个或者多个工作节点,从而实现对工作节点所具有的资源属性信息的合理调度,从而确保具体执行任务的工作节点能够符合任务执行对资源的需求,避免工作节点出现性能不足或者性能浪费的现象。在本实施例中,分布式***100包含的从节点11或者从节点13可基于加入集群10的工作节点而作为从节点并与主节点12保持同步。
分布式***100接收任务或者新任务后还包括:根据任务或者新任务的函数签名和/或哈希值执行取样操作取得任务取样信息,并保存任务取样信息与当前标签信息的对应关系。当分布式***100接收后续的新任务时,查询任务取样信息与当前标签信息的对应关系,以确定响应相似任务所匹配的工作节点。函数签名与哈希值可独立或者组合地且准确地表征任务取样信息,并与当前标签信息建立对应关系,并可利用这种对应关系表征工作节点对任务(或者新任务)的执行效果。前述相似任务既可以是已经被主节点12所选定的某个工作节点所执行的任务,也可以是主节点12重新匹配的工作节点所执行的任务,因此在绝大部分场景中,相似任务可被理解为新任务或者后续执行的新任务。由此,实现了对后续被执行新的任务所匹配的工作节点执行预判的准确性。
在本实施例中,该任务调度方法还包括:在确定主节点12与从节点11,13后,对主节点12与从节点11,13执行节点信息同步,并保存同步后的节点信息,节点信息为加入分布式***100的工作及诶的那响应新任务的前一次任务后所形成的资源消耗记录。例如,当已经被加入集群10的工作节点在执行前一次任务完毕后,其所消耗的资源存在满足该新任务的运行条件时,则在后续的响应新任务的过程中可以暂缓发起新的工作节点的调度操作,甚至不发起调用新的工作节点的调度事件,而依然使用资源存在剩余的且已经被加入至集群10的工作节点以响应该新任务,由此降低了频繁地将资源池30中的工作节点加入集群10或者从集群10中踢出操作所导致的计算消耗,并降低了集群10内部的同步操作及集群10拓扑变化所导致的网路拥塞及计算消耗,并避免了主节点12与从节点之间频繁地执行节点信息同步操作。
任务调度方法还包括:通过返回值记录加入该分布式***100的工作节点响应新任务后所形成的资源消耗记录,然后将返回值写入标签句柄20中的标签信息或者修改标签句柄20中的标签信息以形成当前标签信息,并将当前标签信息对加入分布式***100的工作节点执行标记操作。当分布式***100接收新任务时调用当前标签信息,以确定响应新任务的工作节点的调度策略,其中,响应新任务的工作节点为待加入分布式***100的工作节点或者分布式***100在接收新任务时既有的工作节点。
任务调度方法还包括:主节点12将当前标签信息同步至从节点11,13,并由主节点12侦测工作节点的性能指标,以根据性能指标确定工作节点的优先级;其中,性能指标由响应CPU密集型任务、响应内存密集型任务或者响应IO密集型任务中的一种或者任意几种密集型任务的性能数据单独或者共同定义。当前标签信息由主节点同步至全部从节点后,进一步更新任务取样信息与当前标签信息的对应关系,以确定下一个新任务对工作节点的匹配策略及调度操作。进一步的,在本实施例中,还将单独响应CPU密集型任务、响应内存密集型任务或者响应IO密集型任务的多个工作节点根据彼此所单独具有的性能的高低进行分配并排序并形成独立的子工作节点队列。由此,使得后续在分布式***100接收到新的任务后,如果集群10中既有的工作节点的机器性能不满足新任务的运行需求,则可根据前述单独形成高低性能排序的工作节点队列中根据新任务究竟是侧重于CPU密集型还是侧重于内存密集型的任务特性,从子工作节点队列按照机器性能的高低选取排位靠前的工作节点,或者,从子工作节点队列中选取虽然排名不靠前但是最匹配新任务所侧重的机器性能的工作节点,并将从子工作节点队列中选取的一个或者多个工作节点加入至集群10。通过前述技术方案,可进一步使得对任务或者新任务或者后续的新任务匹配出工作节点的匹配操作更加细腻,从进一步提高了资源池30中工作节点所具有的资源的利用率,从而避免了资源浪费现象。
基于前述技术方案可知,分布式***100在运行过程中,主节点12与从节点11,13之间保持心跳连接,以同步当前标签信息。通常的,对工作节点的调度操作由主节点12下发指令,并仅在主节点12不可用时,自从节点中选举出一个新的主节点。既有的工作节点或者待加入集群10的工作节点在任务执行过程中会向主节点12上报响应任务过程中处理器、内存等资源的消耗信息,以确定既有的工作节点或者后续被加入集群10的一个或者多个工作节点响应任务所形成的负载,以根据任务对资源消耗的情况确定最匹配的工作节点,从而实现了对集群10中的工作节点实现动态分配任务与提前预判,并能够防止集群10在任意一个状态中所具有的工作节点无法满足任务的运行或者工作节点的资源过剩所导致的资源浪费现象。
示例性地,基于前述实施例所揭示的任务调度方法所阐述的技术方案,在本实施例中,还揭示了一种基于分布式***的任务调度***(即,任务调度***)。任务调度***响应任务并匹配工作节点的详细过程可参前述实施例及图5中步骤(1)至步骤(12)所示,故,在后续实施例中予以简化阐述。
示例性地,参图2所示,该任务调度***及多个工作节点可整体部署于分布式***100中。参图6所示,还可将该任务调度***署于分布式***100中,并将多个工作节点逻辑上独立于分布式***100予以单独部署。任务调度***是由前述任务调度方法所依赖的计算机可执行代码的具体实现,并以应用、插件或者程序的形式嵌布运行于分布式***的各个节点(或者工作节点)中。示例性地,分布式***由多个物理计算机或者物理服务器组建成而成,并响应用户向分布式***所发起的访问请求,访问请求对应于本申请中所谓的任务,并根据访问请求所包含的内容(例如文件读写、逻辑运算、数据复制等)确定任务所对应的任务类型。
参图5所示,基于分布式***的任务调度***,包括:标签句柄20与调度器40,标签句柄20部署节点属性信息采集单元21及任务信息取样单元23。标签句柄20部署于分布式***100中既有的主节点和/或从节点中,以通过节点属性信息采集单元21采集所属工作节点的资源属性信息以及集待加入分布式***100的工作节点的节点属性信息,并向待加入分布式***100的工作节点添加标签信息。
分布式***100接收任务,由节点属性信息采集单元21获取任务被分配到的工作节点对任务的资源消耗记录及标签信息,以在分布式***100接收新任务时,由任务信息取样单元23采集各工作节点基于执行任务的资源消耗记录及标签信息,以由调度器40根据资源消耗记录及标签信息确定响应新任务的工作节点。
参图5所示,该任务调度***还包括:节点信息存储单元22。标签句柄20采集待加入分布式***100的工作节点的节点属性信息后,通过节点属性信息采集单元21预设的标签规则生成标签信息,并保存标签信息至节点信息存储单元22,或者,对节点信息存储单元22已经保存的标签信息予以修改后保存。
该任务调度***还包括:任务信息存储单元24。分布式***接100收任务或者新任务后还包括:通过任务信息取样单元23根据任务或者新任务的函数签名和/或哈希值执行取样操作取得任务取样信息,并保存任务取样信息与当前标签信息的对应关系至任务信息存储单元24。
当分布式***100接收后续的新任务时,通过任务信息取样单元23自任务信息存储单元24查询任务取样信息与当前标签信息的对应关系,以确定响应相似任务所匹配的工作节点。
节点属性信息采集单元21确定主节点与从节点,并在确定主节点12与从节点11,13后,对主节点12与从节点11,13执行节点信息同步,并将同步后的节点信息保存至任务信息存储单元23,节点信息为加入分布式***100的工作节点响应新任务的前一次任务后所形成的资源消耗记录。
任务信息取样单元23通过返回值记录加入分布式***100的工作节点响应新任务后所形成的资源消耗记录,然后将返回值写入或者修改标签句柄20中的标签信息以形成当前标签信息,并将当前标签信息对加入分布式***100的工作节点执行标记操作,并保存至任务信息取样单元23。当分布式***100接收新任务时由调度器40自任务信息取样单元调用当前标签信息,以确定响应新任务的工作节点的调度策略,其中,响应新任务的工作节点为待加入分布式***100的工作节点或者分布式***100在接收新任务时既有的工作节点。
主节点12中的节点属性信息采集单元21将当前标签信息同步至从节点11,13,并由主节点12侦测工作节点的性能指标,以根据性能指标确定工作节点的优先级;其中,性能指标由响应CPU密集型任务、响应内存密集型任务或者响应IO密集型任务中的一种或者任意几种密集型任务的性能数据单独或者共同定义。
在本申请各个实施例中,集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (14)
1.基于分布式***的任务调度方法,其特征在于,包括:
向分布式***中既有的主节点和/或从节点中部署采集所属工作节点的资源属性信息的标签句柄;
通过所述标签句柄采集待加入所述分布式***的工作节点的节点属性信息,并向所述待加入所述分布式***的工作节点添加标签信息;
所述分布式***接收任务,获取所述任务被分配到的工作节点对所述任务的资源消耗记录及所述标签信息,以在分布式***接收新任务时,采集各工作节点基于执行任务的资源消耗记录及标签信息,以确定响应所述新任务的工作节点。
2.根据权利要求1所述的任务调度方法,其特征在于,所述标签句柄采集待加入所述分布式***的工作节点的节点属性信息后,通过标签句柄预设的标签规则生成标签信息,或者,对已经保存的标签信息予以修改后保存。
3.根据权利要求1所述的任务调度方法,其特征在于,所述分布式***接收任务或者新任务后还包括:
根据任务或者新任务的函数签名和/或哈希值执行取样操作取得任务取样信息,并保存任务取样信息与当前标签信息的对应关系。
4.根据权利要求3所述的任务调度方法,其特征在于,当分布式***接收后续的新任务时,查询所述任务取样信息与当前标签信息的对应关系,以确定响应相似任务所匹配的工作节点。
5.根据权利要求3所述的任务调度方法,其特征在于,所述任务调度方法还包括:在确定主节点与从节点后,对主节点与从节点执行节点信息同步,并保存同步后的节点信息,所述节点信息为加入所述分布式***的工作节点响应新任务的前一次任务后所形成的资源消耗记录。
6.根据权利要求3所述的任务调度方法,其特征在于,所述任务调度方法还包括:通过返回值记录所述加入所述分布式***的工作节点响应新任务后所形成的资源消耗记录,然后将返回值写入标签句柄中的标签信息或者修改标签句柄中的标签信息以形成当前标签信息,并将所述当前标签信息对所述加入所述分布式***的工作节点执行标记操作;
当分布式***接收新任务时调用所述当前标签信息,以确定响应所述新任务的工作节点的调度策略,其中,所述响应所述新任务的工作节点为待加入所述分布式***的工作节点或者分布式***在接收新任务时既有的工作节点。
7.根据权利要求3所述的任务调度方法,其特征在于,所述任务调度方法还包括:主节点将所述当前标签信息同步至从节点,并由所述主节点侦测工作节点的性能指标,以根据所述性能指标确定工作节点的优先级;
其中,性能指标由响应CPU密集型任务、响应内存密集型任务或者响应IO密集型任务中的一种或者任意几种密集型任务的性能数据单独或者共同定义。
8.基于分布式***的任务调度***,其特征在于,包括:
标签句柄与调度器,所述标签句柄部署节点属性信息采集单元及任务信息取样单元;
所述标签句柄部署于分布式***中既有的主节点和/或从节点中,以通过所述节点属性信息采集单元采集所属工作节点的资源属性信息以及集待加入所述分布式***的工作节点的节点属性信息,并向所述待加入所述分布式***的工作节点添加标签信息;
所述分布式***接收任务,由所述节点属性信息采集单元获取所述任务被分配到的工作节点对所述任务的资源消耗记录及所述标签信息,以在分布式***接收新任务时,由所述任务信息取样单元采集各工作节点基于执行任务的资源消耗记录及标签信息,以由调度器根据资源消耗记录及标签信息确定响应所述新任务的工作节点。
9.根据权利要求8所述的任务调度***,其特征在于,还包括:节点信息存储单元;
所述标签句柄采集待加入所述分布式***的工作节点的节点属性信息后,通过节点属性信息采集单元预设的标签规则生成标签信息,并保存所述标签信息至所述节点信息存储单元,或者,对节点信息存储单元已经保存的标签信息予以修改后保存。
10.根据权利要求8所述的任务调度***,其特征在于,还包括:任务信息存储单元;
所述分布式***接收任务或者新任务后还包括:
通过所述任务信息取样单元根据任务或者新任务的函数签名和/或哈希值执行取样操作取得任务取样信息,并保存任务取样信息与当前标签信息的对应关系至所述任务信息存储单元。
11.根据权利要求8所述的任务调度***,其特征在于,当分布式***接收后续的新任务时,通过所述任务信息取样单元自所述任务信息存储单元查询所述任务取样信息与当前标签信息的对应关系,以确定响应相似任务所匹配的工作节点。
12.根据权利要求10所述的任务调度***,其特征在于,所述节点属性信息采集单元确定主节点与从节点,并在确定主节点与从节点后,对主节点与从节点执行节点信息同步,并将同步后的节点信息保存至任务信息存储单元,所述节点信息为加入所述分布式***的工作节点响应新任务的前一次任务后所形成的资源消耗记录。
13.根据权利要求10所述的任务调度***,其特征在于,所述任务信息取样单元通过返回值记录所述加入所述分布式***的工作节点响应新任务后所形成的资源消耗记录,然后将返回值写入或者修改标签句柄中的标签信息以形成当前标签信息,并将所述当前标签信息对所述加入所述分布式***的工作节点执行标记操作,并保存至任务信息取样单元;
当分布式***接收新任务时由调度器自所述任务信息取样单元调用所述当前标签信息,以确定响应所述新任务的工作节点的调度策略,其中,所述响应所述新任务的工作节点为待加入所述分布式***的工作节点或者分布式***在接收新任务时既有的工作节点。
14.根据权利要求10所述的任务调度***,其特征在于,主节点中的节点属性信息采集单元将所述当前标签信息同步至从节点,并由所述主节点侦测工作节点的性能指标,以根据所述性能指标确定工作节点的优先级;
其中,性能指标由响应CPU密集型任务、响应内存密集型任务或者响应IO密集型任务中的一种或者任意几种密集型任务的性能数据单独或者共同定义。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210526284.2A CN114840343A (zh) | 2022-05-16 | 2022-05-16 | 基于分布式***的任务调度方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210526284.2A CN114840343A (zh) | 2022-05-16 | 2022-05-16 | 基于分布式***的任务调度方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114840343A true CN114840343A (zh) | 2022-08-02 |
Family
ID=82568998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210526284.2A Pending CN114840343A (zh) | 2022-05-16 | 2022-05-16 | 基于分布式***的任务调度方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114840343A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117314659A (zh) * | 2023-11-29 | 2023-12-29 | 中国人寿保险股份有限公司上海数据中心 | 一种非保险单证的管理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096602A (zh) * | 2009-12-15 | 2011-06-15 | ***通信集团公司 | 一种任务调度方法及其***和设备 |
CN107038069A (zh) * | 2017-03-24 | 2017-08-11 | 北京工业大学 | Hadoop平台下动态标签匹配DLMS调度方法 |
CN109471727A (zh) * | 2018-10-29 | 2019-03-15 | 北京金山云网络技术有限公司 | 一种任务处理方法、装置及*** |
CN112685155A (zh) * | 2020-12-25 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种计算任务调度方法、装置、***及存储介质 |
WO2021208546A1 (zh) * | 2020-04-16 | 2021-10-21 | 南京邮电大学 | Kubernetes集群架构***下多维资源调度方法 |
CN114116173A (zh) * | 2021-12-01 | 2022-03-01 | 北京京东振世信息技术有限公司 | 动态调整任务分配的方法、装置和*** |
-
2022
- 2022-05-16 CN CN202210526284.2A patent/CN114840343A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102096602A (zh) * | 2009-12-15 | 2011-06-15 | ***通信集团公司 | 一种任务调度方法及其***和设备 |
CN107038069A (zh) * | 2017-03-24 | 2017-08-11 | 北京工业大学 | Hadoop平台下动态标签匹配DLMS调度方法 |
CN109471727A (zh) * | 2018-10-29 | 2019-03-15 | 北京金山云网络技术有限公司 | 一种任务处理方法、装置及*** |
WO2021208546A1 (zh) * | 2020-04-16 | 2021-10-21 | 南京邮电大学 | Kubernetes集群架构***下多维资源调度方法 |
CN112685155A (zh) * | 2020-12-25 | 2021-04-20 | 北京浪潮数据技术有限公司 | 一种计算任务调度方法、装置、***及存储介质 |
CN114116173A (zh) * | 2021-12-01 | 2022-03-01 | 北京京东振世信息技术有限公司 | 动态调整任务分配的方法、装置和*** |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117314659A (zh) * | 2023-11-29 | 2023-12-29 | 中国人寿保险股份有限公司上海数据中心 | 一种非保险单证的管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
CN102866918B (zh) | 面向分布式编程框架的资源管理*** | |
CN103092698B (zh) | 云计算应用自动部署***及方法 | |
CN107148617B (zh) | 日志协调存储组的自动配置 | |
EP4160405A1 (en) | Task execution method and storage device | |
CN104407926B (zh) | 一种云计算资源的调度方法 | |
CN103324534A (zh) | 作业调度方法及其调度器 | |
CN103019853A (zh) | 一种作业任务的调度方法和装置 | |
CN104965850A (zh) | 一种基于开源技术的数据库高可用实现方法 | |
CN108681479B (zh) | 一种面向数据挖掘云的资源调度方法 | |
WO2022141727A1 (zh) | 一种基于云上成本的资源部署***及方法 | |
CN109144710A (zh) | 资源调度方法、装置及计算机可读存储介质 | |
US9251149B2 (en) | Data set size tracking and management | |
US8973008B2 (en) | Combining different resource types | |
CN114840343A (zh) | 基于分布式***的任务调度方法及*** | |
CN114389955A (zh) | 嵌入式平台异构资源池化管理方法 | |
CN113535321A (zh) | 虚拟化容器管理方法、***和存储介质 | |
CN102081757A (zh) | 一种报表制作方法及其*** | |
CN114297002A (zh) | 一种基于对象存储的海量数据备份方法及*** | |
CN112395052B (zh) | 一种面向混合负载基于容器的集群资源管理方法及*** | |
CN107528871A (zh) | 存储***中的数据分析 | |
WO2021120693A1 (zh) | 一种新旧代码共同运行的kbroker分布式操作*** | |
CN106815318B (zh) | 一种时序数据库的集群化方法及*** | |
CN101030884B (zh) | 电信网络资源oss***中独占性资源的调度方法 | |
CN116389591A (zh) | 一种基于跨域分布式处理***及调度优化方法 |
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 |