CN110012062B - 一种多机房任务调度方法、装置及存储介质 - Google Patents
一种多机房任务调度方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110012062B CN110012062B CN201910134018.3A CN201910134018A CN110012062B CN 110012062 B CN110012062 B CN 110012062B CN 201910134018 A CN201910134018 A CN 201910134018A CN 110012062 B CN110012062 B CN 110012062B
- Authority
- CN
- China
- Prior art keywords
- task
- executed
- execution
- cluster
- clusters
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000003860 storage Methods 0.000 title claims abstract description 16
- 238000004519 manufacturing process Methods 0.000 claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 3
- 238000009826 distribution Methods 0.000 abstract description 3
- 238000004891 communication Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013468 resource allocation Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种多机房任务调度方法、装置及存储介质,应用于包括多个集群、调度器以及存储器的系统,该方法执行于调度器,该方法包括:获取在存储器中的前置任务的数据状态;根据前置任务的数据生产状态,判断是否开启待执行任务;在确定开启待执行任务的情况下,确定用于执行待执行任务的执行集群以及执行待执行任务所需的执行时长,该执行集群是多个集群中的空闲集群;根据执行集群和执行时长,利用预设的执行策略,完成待执行任务,该执行策略用于当执行待执行任务的集群为多个时,将不同的空闲集群确定为执行集群,以对应进行跨机房内的多个集群资源调度和分配,进而提升大数据系统的鲁棒性以及提升系统安全运行的能力,优化资源配置。
Description
技术领域
本发明属于数据处理领域,特别是涉及一种多机房任务调度方法、装置及存储介质。
背景技术
现有技术中,在单一机房内进行集群资源的调度,是分配适合的集群资源用以执行待执行任务,而在该机房内没有空闲的集群资源时,将待执行任务置于排队等待状态,直至有空闲且适合的集群资源。而一旦机房出现故障则会导致没有可执行任务的集群资源,以至于无法继续执行待执行任务,因此,单一机房的可靠性低且不具有容灾能力。
目前,大数据系统中可以利用分布在多机房的集群资源执行待执行任务,但各个机房之间由于通信功能/权限的限制,而无法获知其他机房内的资源和任务状态,难以实现在多机房之间进行集群资源的灵活调配,也就无法利用多个机房内的集群资源克服单一机房所存在的可靠性低且不具有容灾能力的问题,进而难以确保大数据系统的鲁棒性和容灾性。
发明内容
有鉴于此,本发明提供一种多机房任务调度方法、装置及存储介质,以便解决现有技术中无法在多机房的情况下实现资源的合理调配的问题。
依据本发明的第一方面,提供了一种多机房任务调度方法,应用于包括多个集群、调度器以及存储器的系统,所述多个集群部署于不同机房,各集群分别与所述存储器进行通信,所述存储器与所述调度器进行通信,所述方法执行于所述调度器,所述方法包括:
获取在所述存储器中的前置任务的数据状态;
根据所述前置任务的数据生产状态,判断是否开启待执行任务;
在确定开启所述待执行任务的情况下,确定用于执行所述待执行任务的执行集群以及执行所述待执行任务所需的执行时长,所述执行集群是所述多个集群中的空闲集群;
根据所述执行集群和所述执行时长,利用预设的执行策略,完成所述待执行任务,所述执行策略用于当执行所述待执行任务的集群为多个时,将不同的空闲集群确定为所述执行集群。
依据本发明的第二方面,提供了一种多机房任务调度装置,应用于包括多个集群、调度器以及存储器的系统,所述多个集群部署于不同机房,各集群分别与所述存储器进行通信,所述存储器与所述调度器进行通信,所述装置设置于所述调度器,所述装置包括:
获取模块,获取在所述存储器中的前置任务的数据状态;
检测模块,用于根据所述前置任务的数据生产状态,判断是否开启所述待执行任务;
集群确定模块,用于在确定开启所述待执行任务的情况下,确定用于执行所述待执行任务的执行集群以及执行所述待执行任务所需的执行时长,所述执行集群是所述多个集群中的空闲集群;
任务执行模块,用于根据所述执行集群和所述执行时长,利用预设的执行策略,完成所述待执行任务,所述执行策略用于当执行所述待执行任务的集群为多个时,将不同的空闲集群确定为所述执行集群。
依据本发明的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的多机房任务调度方法的步骤。
针对在先技术,本发明具备如下优点:
利用调度器根据前置任务的数据状态,确定是否开启待执行任务,在确定开启该待执行任务之后根据资源空闲情况为其分配系统中空闲集群并对应设置执行时长,通过调度器与多个机房之间的数据交互,查询到多个机房的多个集群状态,从而能够对应在多个机房之间的集群资源进行调度和分配,避免基于单机房故障,导致的无法完成任务的执行,同时在执行所述待执行任务的集群为多个集群的情况下,将所述多个集群确定为不同的空闲集群,进而能够在单集群出现故障、任务失败、集群拥挤等情况下,调度其他适合资源完成待执行任务,以提升系统安全运行的能力,优化资源配置。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种多机房任务调度方法的步骤流程图;
图2是本发明实施例提供的一种多机房任务调度方法的具体步骤流程图;
图3是本发明实施例提供的一种多机房任务调度方法的具体步骤流程图;
图4是本发明实施例提供的一种多机房任务调度方法的具体步骤流程图;
图5是本发明实施例提供的一种多机房任务调度装置的框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1是本发明实施例提供的一种多机房任务调度方法的步骤流程图,如图1所示,应用于包括多个集群、调度器以及存储器的系统,多个集群部署于不同机房,各集群分别与存储器进行通信,存储器与调度器进行通信,该方法执行于调度器,可以包括:
步骤101,获取在存储器中的前置任务的数据状态。
在具体应用中,基于大数据系统的某个目标项目(例如作弊数据清洗或者报表指标统计),在进行大量的数据处理时,一般包括若干个执行步骤(任务),而在这些步骤(任务)中,每个操作(开发、提交和维护操作)可能会隶属于不同团队,由于不同团队对应有不同的集群资源,且具有不同的权限限制,A团队无法/无权限直接查看B团队的任务的执行情况,用于执行A团队对应的操作的集群资源无法与执行B团队对应的操作的集群资源之间进行数据交互,因此在大数据系统中需要利用调度器在其中进行调度和协调,通过调度器获悉合作方即前置步骤(任务)的完成状态,以便启动我方任务即待执行任务的执行操作。
需要说明的是,调度器可以利用各个机房的数据接口,获取到各个机房内的集群资源状态以及在各个机房内所执行的任务状态。示例地,将HDFS(中文:Hadoop分布式文件系统;英文:Hadoop Distributed File System)作为存储器,其用于存储done文件,该文件用以标识任务的完成状态。在每一个任务执行完成之后,对应生成一个done文件保存在存储器中,以表明该任务的数据生产状态为完成状态,例如可以设置调度器周期性的到HDFS中查询前置任务的done文件是否生成(获取前置任务的数据状态),当检测到前置任务已生成对应的done文件时,调度器则确定开启待执行任务;否则等待下个周期再次进行查询,以确定前置任务是否生成done文件,进而判断是否开启待执行任务。
需要说明的是,本发明中涉及的机房是指企业用于数据存储和计算的硬件设备所在地,比如某度机房、某里机房以及其他企业自建的全国各地机房,对于同一个企业而言数据和计算资源可以分布在全国不同的机房;而每个企业都有对应的业务团队,是根据企业内部按照职能划分的人员,通常同一个大数据分析任务,可能需要多个团队进行参与,一个团队提供一部分结果给其他的团队使用,可以是黑名单数据也可以是抽象的一些统计特征等,因此需要调度器根据不同的机房资源使用率和任务之间的上下游关系对系统的资源进行调度。
步骤102,根据前置任务的数据生产状态,判断是否开启待执行任务。
其中,待执行任务是基于前置任务所生产的数据以执行的任务,待执行任务是当前需要执行的数据生产任务。该包括多个集群、调度器以及存储器的系统,通过调度器从存储器上获取集群的状态信息和任务的数据生产状态,进而实现在系统内的资源全局调配,需要说明的是,该调度器可以是能够实现本发明提出的技术方案的功能模块,集成在硬件设备上的虚拟装置;或者还可以一个具有实体的硬件设备能够实现本发明提出的技术方案的方法步骤,本发明不做限制。
步骤103,在确定开启待执行任务的情况下,确定用于执行待执行任务的执行集群以及执行待执行任务所需的执行时长。
其中,执行集群是多个集群中的空闲集群。
在具体应用场景下,通过调度器对资源进行合理调度时,例如针对实际的当前各个数据生产任务的执行情况,确定其适合的执行集群以及对应的执行时长,进而在待执行任务的本集群数据生产任务失败、排队或运行缓慢时,调度器调度其他可用于执行数据生产任务的集群,使得待执行任务的数据生产可以继续执行。其中,集群是指分布式计算资源,会分布在不同机房中,因此在对待执行任务的调度过程中,对应进行执行集群的合理调配,以优化资源配置。
步骤104,根据执行集群和执行时长,利用预设的执行策略,完成待执行任务。
其中,执行策略用于当执行待执行任务的集群为多个时,将不同的空闲集群确定为执行集群。
在具体应用中,根据步骤103所确定的执行集群和执行时长,将在执行时长内利用执行集群进行待执行任务的执行操作,以完成该待执行任务。若在执行时长内完成待执行任务,例如可以在HDFS中生成对应的数据状态数据,例如是Done文件,以指示后续的任务可以继续执行;否则,将使用其他与之前确定的执行集群不同的空闲集群,继续进行待执行任务。例如,当利用集群A作为执行集群,当预设的执行时长内没有完成待执行任务时,可能是由于集群A出现故障而造成的,进而调度器在为待执行任务分配新的执行集群时,即使集群A为空闲状态,也不再使用集群A,避免再次利用集群A(重复使用出现故障的集群资源)而造成待执行任务无法在执行时长内完成的情况,以确保待执行任务的完成率。
需要说明的是,本发明提出的技术方案涉及的调度器,是设置在多个机房自身(单一机房)的调度系统之上的调度器,其能够对不同机房内的集群资源进行整合后统一调度,使得在整个大数据系统内实现资源的全局分配,克服单一机房存在的稳定性和容灾性差的问题。
综上所述,本发明提供的多机房任务调度方法,获取在存储器中的前置任务的数据状态;根据前置任务的数据生产状态,判断是否开启待执行任务;在确定开启待执行任务的情况下,确定用于执行待执行任务的执行集群以及执行待执行任务所需的执行时长,该执行集群是多个集群中的空闲集群;根据执行集群和执行时长,利用预设的执行策略,完成待执行任务,该执行策略用于当执行待执行任务的集群为多个时,将不同的空闲集群确定为执行集群,以对应进行跨机房内的多个集群资源调度和分配,进而提升大数据系统的鲁棒性以及提升系统安全运行的能力,优化资源配置。
可选的,图2是本发明实施例提供的一种多机房任务调度方法的具体步骤流程图,如图2所示,步骤102所述的根据前置任务的数据生产状态,判断是否开启待执行任务,可以包括:
步骤1021,根据在系统中前置任务的执行状态数据,获取前置任务的数据生产状态。
其中,执行状态数据用于表示前置任务的当前执行状态,示例地,执行状态数据可以是通过执行状态文件或者执行状态参数获取到的数据。
在具体应用中,可以利用步骤101中所述的Done文件的方式,作为执行状态文件,此处不再赘述。此外,还可以利用在存储器中存储的各个任务的执行状态参数,确定前置任务的当前执行状态。例如,当A团队的步骤完成后,在MySQL数据库(存储器)中插入一个状态数据,例如设置为status(取值为0或者1),当status=1时,则表示该任务的执行状态为完成状态;而当status=0时,则表示该任务的执行状态为未完成状态。调度器可以周期性的在MySQL数据库中查询,确认status是否为1,进而判断是否能够开启执行待执行任务。
在具体应用中,由于前置任务作为待执行任务的合作方,与待执行任务之间存在上下游的数据调用关系,因此只有在待执行任务的前置任务的数据生产状态为完成状态的情况,才能够开启待执行任务的执行操作,即进行步骤1022的操作;否则,在前置任务的数据生产状态为未完成状态的情况下,可以引入睡眠(SLEEP)机制,等待一段时间之后再进行前置任务的数据生产状态的查询,直至其满足完成条件之后,再开启待执行任务的执行操作。
步骤1022,在前置任务的数据生产状态为完成状态的情况下,开启待执行任务。
也就是说,在前置任务已经完成数据生产之后,可以开启执行待执行业务,将待执行任务放入数据生产任务池中,例如可以采用消息队列的方式,将待执行业务放入消息队列中,以便于在下面步骤中给空闲集群分配了所要执行的任务后,空闲集群直接从消息队列中获取到该任务对应的任务内容(例如通过消息队列中所包括的用于获取任务内容的地址指针),进而执行对应任务。
步骤1023,在前置任务的数据生产状态为未完成状态的情况下,暂停开启待执行任务。
示例地,在前置任务的数据生产状态为未完成状态的情况下,说明待执行任务的合作方(前置任务)的数据并未准备好,需要等待前置任务继续执行,直至数据生产状态为完成状态再开启待执行任务,调度器将在等待过程中将待执行任务置于睡眠状态,并周期性查询前置任务的数据生产状态。
可选的,图3是本发明实施例提供的一种多机房任务调度方法的具体步骤流程图,如图3所示,步骤103所述的在确定开启待执行任务的情况下,确定用于执行待执行任务的执行集群以及执行待执行任务所需的执行时长,可以包括:
步骤1031,根据系统中集群的状态信息,获取系统内的资源空闲情况。
示例地,在进行多机房任务调度时,调度器需要实时进行各个集群状态的监控,各个集群将其状态(空闲与否)上报至系统的存储器中,调度器可以在预设时间间隔内进行前置任务的状态信息的查询,进而确定实时的多机房内集群资源的状态,以及各个任务的数据生产状态等信息,以便于为待执行任务确定执行集群,同时设置待执行任务的最长执行时长作为执行时长,以开始执行待执行任务。
步骤1032,根据资源空闲情况和为待执行任务预设的备选集群,筛选出备选集群中的一个空闲集群,以作为执行集群。
在具体应用中,由于集群是一种提供分布式计算资源的机器,有时在系统中会存在专用集群,例如是执行线上任务的专用集群,还有些是测试集群,专门用于执行对应的测试任务。为了降低调度失败率,在系统初始建立时,对任务的资源配置进行初始化设置,选择能够支持任务执行的若干集群,作为备选集群,之后调度器会根据上述备选集群以及当前该备选集群是否为空闲状态的信息,进行集群资源调度。也就是说,将备选集群中的一个空闲集群作为执行集群,用以执行待执行任务。
步骤1033,根据待执行任务,设置执行时长。
示例地,该执行时长的设置可以基于待执行任务所包括的数据量大小而确定,还可以结合上述步骤中为待执行任务所设置的备选集群的计算资源大小而对应调整。该执行时长可以作为执行集群所需的最大执行时长,当最大执行时长结束之后,则不会再继续利用该执行集群进行待执行任务的执行,以避免重复使用出现故障的集群执行同一待执行任务。
可选的,图4是本发明实施例提供的一种多机房任务调度方法的具体步骤流程图,如图4所示,步骤104所述的根据执行集群和执行时长,利用预设的执行策略,完成待执行任务,可以包括:
步骤1041,在执行时长内,利用执行集群开始执行待执行任务。
步骤1042,若待执行任务在执行时长内执行完成,确定完成待执行任务。
步骤1043,若待执行任务在执行时长内没有执行完成,重新获取系统内的资源空闲情况,以根据资源空闲情况和待执行任务,确定新的执行集群和新的执行时长。
步骤1044,利用新的执行集群在新的执行时长内继续执行待执行任务,直至完成待执行任务。
在具体应用中,根据在执行时长内利用空闲集群执行待执行任务并且不重复使用相同资源的原则,进而在步骤1033所确定的执行时长(最大执行时长)结束后,判断是否完成待执行业务,若完成即说明待执行任务的本次调度结束;否则当该执行时长结束,待执行任务还未完成,则调度器将重新查询系统内的资源空闲情况,以确定新的空闲集群,即步骤1043,在新的(相同任务不在相同集群多次提交)空闲集群中再次提交一次待执行任务,同时对应设置一个新的执行时长,进而利用新的执行集群在新的执行时长内继续执行待执行任务,到待执行任务完成为止。
需要说明的是,为待执行任务所确定的执行集群是不同的,而执行时长可以相同也可以不同,执行集群和执行时长是依据实际的系统内的资源空闲情况和待执行任务而确定的。例如,当调度器在开启待执行任务时,对应确定集群1(备选集群之一)作为执行集群,而根据待执行任务的实际任务内容(任务中的数据量大小),设置的执行时长为300s。在300s结束后,待执行任务仍未完成,则重新获取系统内的资源空闲情况,发现集群1仍为空闲状态,但由于相同任务不在相同集群多次提交,而待执行任务的备选集群中的集群2此时为空闲状态,则选择集群2为执行集群,且待执行任务所剩余的任务内容为原任务内容的70%,可以设置执行时长为500s,开始利用集群2继续执行待执行任务的剩余70%的任务内容。因此,通过上述的资源调度方式能够在待执行任务在单集群出现故障、任务失败、集群拥挤等情况下,通过调度器将调配其他合适的空闲资源给待执行任务并重新调整执行时长,继续执行待执行任务,以完成该待执行任务。
图5是本发明实施例提供的一种多机房任务调度装置的框图,如图5所示,应用于包括多个集群、调度器以及存储器的系统,多个集群部署于不同机房,各集群分别与存储器进行通信,存储器与调度器进行通信,装置500设置于调度器,该装置500包括:
获取模块510,获取在存储器中的前置任务的数据状态。
检测模块520,用于根据前置任务的数据生产状态,判断是否开启待执行任务。
集群确定模块530,用于在确定开启待执行任务的情况下,确定用于执行待执行任务的执行集群以及执行待执行任务所需的执行时长,执行集群是多个集群中的空闲集群。
任务执行模块540,用于根据执行集群和执行时长,利用预设的执行策略,完成待执行任务,执行策略用于当执行待执行任务的集群为多个时,将不同的空闲集群确定为执行集群。
可选的,该检测模块520包括:
状态获取子模块,用于根据在系统中前置任务的执行状态数据,获取前置任务的数据生产状态,执行状态数据用于表示前置任务的当前执行状态。
任务状态确定子模块,用于在前置任务的数据生产状态为完成状态的情况下,开启待执行任务;或者,在前置任务的数据生产状态为未完成状态的情况下,暂停待执行任务。
可选的,该集群确定模块530,包括:
资源获取子模块,用于根据系统中集群的状态信息,获取系统内的资源空闲情况;
集群筛选子模块,用于根据资源空闲情况和为待执行任务预设的备选集群,筛选出备选集群中的一个空闲集群,以作为执行集群;
时长设置子模块,用于根据待执行任务的数据量,设置执行时长。
可选的,该任务执行模块540,包括:
任务执行子模块,用于在执行时长内,利用执行集群开始执行待执行任务;
完成确定子模块,用于若待执行任务在执行时长内执行完成,确定完成待执行任务。
可选的,任务执行模块,还包括:
资源获取子模块,用于若待执行任务在执行时长内没有执行完成,重新获取系统内的资源空闲情况,以根据资源空闲情况和待执行任务,确定新的执行集群和新的执行时长;
数据执行子模块,用于利用新的执行集群在新的执行时长内继续执行待执行任务,直至完成待执行任务。
另外,本发明实施例还提供一种终端,包括处理器,存储器,存储在存储器上并可在处理上运行的计算机程序,该计算机程序被处理器执行时实现上述多机房任务调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述多机房任务调度方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,可以为只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
对于上述装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
在此提供的多机房任务调度方法不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的多机房任务调度方法中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (11)
1.一种多机房任务调度方法,其特征在于,应用于包括多个集群、调度器以及存储器的系统,所述多个集群部署于不同机房,各集群分别与所述存储器进行通信,所述存储器与所述调度器进行通信,所述方法执行于所述调度器,所述方法包括:
获取在所述存储器中的前置任务的数据状态;
根据所述前置任务的数据生产状态,判断是否开启待执行任务;
在确定开启所述待执行任务的情况下,确定用于执行所述待执行任务的执行集群以及执行所述待执行任务所需的执行时长,所述执行集群是所述多个集群中的空闲集群;
根据所述执行集群和所述执行时长,利用预设的执行策略,完成所述待执行任务,所述执行策略用于当执行所述待执行任务的集群为多个时,将不同的空闲集群确定为所述执行集群;
若所述待执行任务在所述执行时长内没有执行完成,重新确定新的执行集群,所述新的执行集群为与之前确定的执行集群不同的空闲集群,且所述新的执行集群与所述之前确定的执行集群部署于不同的机房;
利用所述新的执行集群继续执行所述待执行任务,直至完成所述待执行任务。
2.根据权利要求1所述的方法,其特征在于,所述根据前置任务的数据生产状态,确定是否开启所述待执行任务,包括:
根据在所述系统中所述前置任务的执行状态数据,获取所述前置任务的数据生产状态;
在所述前置任务的数据生产状态为完成状态的情况下,开启所述待执行任务;或者,在所述前置任务的数据生产状态为未完成状态的情况下,暂停所述待执行任务。
3.根据权利要求1所述的方法,其特征在于,所述在确定开启所述待执行任务的情况下,确定用于执行所述待执行任务的执行集群以及执行所述待执行任务所需的执行时长,包括:
根据所述系统中所述集群的状态信息,获取所述系统内的资源空闲情况;
根据所述资源空闲情况和为所述待执行任务预设的备选集群,筛选出所述备选集群中的一个空闲集群,以作为所述执行集群;
根据所述待执行任务的数据量,设置所述执行时长。
4.根据权利要求3所述的方法,其特征在于,所述根据所述执行集群和所述执行时长 ,利用预设的执行策略,完成所述待执行任务,包括:
在所述执行时长内,利用所述执行集群开始执行所述待执行任务;
若所述待执行任务在所述执行时长内执行完成,确定完成所述待执行任务。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述待执行任务在所述执行时长内没有执行完成,重新获取所述系统内的资源空闲情况,以根据所述资源空闲情况和所述待执行任务,确定新的执行集群和新的执行时长;
利用所述新的执行集群在所述新的执行时长内继续执行所述待执行任务,直至完成所述待执行任务。
6.一种多机房任务调度装置,其特征在于,应用于包括多个集群、调度器以及存储器的系统,所述多个集群部署于不同机房,各集群分别与所述存储器进行通信,所述存储器与所述调度器进行通信,所述装置设置于所述调度器,所述装置包括:
获取模块,获取在所述存储器中的前置任务的数据状态;
检测模块,用于根据所述前置任务的数据生产状态,判断是否开启待执行任务;
集群确定模块,用于在确定开启所述待执行任务的情况下,确定用于执行所述待执行任务的执行集群以及执行所述待执行任务所需的执行时长,所述执行集群是所述多个集群中的空闲集群;
任务执行模块,用于根据所述执行集群和所述执行时长,利用预设的执行策略,完成所述待执行任务,所述执行策略用于当执行所述待执行任务的集群为多个时,将不同的空闲集群确定为所述执行集群;
若所述待执行任务在所述执行时长内没有执行完成,重新确定新的执行集群,所述新的执行集群为与之前确定的执行集群不同的空闲集群,且所述新的执行集群与所述之前确定的执行集群部署于不同的机房;
利用所述新的执行集群继续执行所述待执行任务,直至完成所述待执行任务。
7.根据权利要求6所述的装置,其特征在于,所述检测模块,包括:
状态获取子模块,用于根据在所述系统中所述前置任务的执行状态数据,获取所述前置任务的数据生产状态;
任务状态确定子模块,用于在所述前置任务的数据生产状态为完成状态的情况下,开启所述待执行任务;或者,在所述前置任务的数据生产状态为未完成状态的情况下,暂停所述待执行任务。
8.根据权利要求6所述的装置,其特征在于,所述集群确定模块,包括:
资源获取子模块,用于根据所述系统中所述集群的状态信息,获取所述系统内的资源空闲情况;
集群筛选子模块,用于根据所述资源空闲情况和为所述待执行任务预设的备选集群,筛选出所述备选集群中的一个空闲集群,以作为所述执行集群;
时长设置子模块,用于根据所述待执行任务的数据量,设置所述执行时长。
9.根据权利要求8所述的装置,其特征在于,所述任务执行模块,包括:
任务执行子模块,用于在所述执行时长内,利用所述执行集群开始执行所述待执行任务;
完成确定子模块,用于若所述待执行任务在所述执行时长内执行完成,确定完成所述待执行任务。
10.根据权利要求9所述的装置,其特征在于,所述任务执行模块,还包括:
资源获取子模块,用于若所述待执行任务在所述执行时长内没有执行完成,重新获取所述系统内的资源空闲情况,以根据所述资源空闲情况和所述待执行任务,确定新的执行集群和新的执行时长;
数据执行子模块,用于利用所述新的执行集群在所述新的执行时长内继续执行所述待执行任务,直至完成所述待执行任务。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的多机房任务调度方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910134018.3A CN110012062B (zh) | 2019-02-22 | 2019-02-22 | 一种多机房任务调度方法、装置及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910134018.3A CN110012062B (zh) | 2019-02-22 | 2019-02-22 | 一种多机房任务调度方法、装置及存储介质 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN110012062A CN110012062A (zh) | 2019-07-12 |
| CN110012062B true CN110012062B (zh) | 2022-02-08 |
Family
ID=67165890
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201910134018.3A Active CN110012062B (zh) | 2019-02-22 | 2019-02-22 | 一种多机房任务调度方法、装置及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN110012062B (zh) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110519381B (zh) * | 2019-08-29 | 2023-08-25 | 深圳前海微众银行股份有限公司 | 分布式任务的处理方法、装置、终端设备及存储介质 |
| CN111818159B (zh) * | 2020-07-08 | 2024-04-05 | 腾讯科技(深圳)有限公司 | 数据处理节点的管理方法、装置、设备及存储介质 |
| CN112114950A (zh) * | 2020-09-21 | 2020-12-22 | 中国建设银行股份有限公司 | 任务调度方法和装置、以及集群管理系统 |
| CN112181607A (zh) * | 2020-11-06 | 2021-01-05 | 北京凌云雀科技有限公司 | 组件处理方法、装置、设备及存储介质 |
| CN112817713B (zh) * | 2021-01-27 | 2023-10-13 | 广州虎牙科技有限公司 | 作业调度方法、装置和电子设备 |
| CN115203157A (zh) * | 2022-06-26 | 2022-10-18 | 平安银行股份有限公司 | Nas文件的消费系统、方法、设备以及存储介质 |
| CN115640119B (zh) * | 2022-09-07 | 2025-09-26 | 福建天泉教育科技有限公司 | 一种任务调度方法及终端 |
| CN117785405A (zh) * | 2023-12-11 | 2024-03-29 | 天翼云科技有限公司 | 一种多云环境中敏感数据工作流调度方法及系统 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104243617A (zh) * | 2014-10-14 | 2014-12-24 | 中国科学院信息工程研究所 | 一种异构集群中面向混合负载的任务调度方法及系统 |
| CN105487930A (zh) * | 2015-12-01 | 2016-04-13 | 中国电子科技集团公司第二十八研究所 | 一种基于Hadoop的任务优化调度方法 |
| CN106453497A (zh) * | 2016-09-08 | 2017-02-22 | 天津海量信息技术股份有限公司 | 一种分布式集群系统及其资源调配方法 |
| CN108255595A (zh) * | 2018-01-16 | 2018-07-06 | 北京中关村科金技术有限公司 | 一种数据任务的调度方法、装置、设备及可读存储介质 |
| CN108287756A (zh) * | 2018-01-25 | 2018-07-17 | 联动优势科技有限公司 | 一种处理任务的方法及装置 |
| CN108762896A (zh) * | 2018-03-26 | 2018-11-06 | 福建星瑞格软件有限公司 | 一种基于Hadoop集群任务调度方法及计算机设备 |
| CN109144699A (zh) * | 2018-08-31 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 分布式任务调度方法、装置及系统 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4855655B2 (ja) * | 2004-06-15 | 2012-01-18 | 株式会社ソニー・コンピュータエンタテインメント | 処理管理装置、コンピュータ・システム、分散処理方法及びコンピュータプログラム |
| CN109634748A (zh) * | 2018-12-12 | 2019-04-16 | 深圳前海微众银行股份有限公司 | 集群资源调度方法、装置、设备及计算机可读存储介质 |
-
2019
- 2019-02-22 CN CN201910134018.3A patent/CN110012062B/zh active Active
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104243617A (zh) * | 2014-10-14 | 2014-12-24 | 中国科学院信息工程研究所 | 一种异构集群中面向混合负载的任务调度方法及系统 |
| CN105487930A (zh) * | 2015-12-01 | 2016-04-13 | 中国电子科技集团公司第二十八研究所 | 一种基于Hadoop的任务优化调度方法 |
| CN106453497A (zh) * | 2016-09-08 | 2017-02-22 | 天津海量信息技术股份有限公司 | 一种分布式集群系统及其资源调配方法 |
| CN108255595A (zh) * | 2018-01-16 | 2018-07-06 | 北京中关村科金技术有限公司 | 一种数据任务的调度方法、装置、设备及可读存储介质 |
| CN108287756A (zh) * | 2018-01-25 | 2018-07-17 | 联动优势科技有限公司 | 一种处理任务的方法及装置 |
| CN108762896A (zh) * | 2018-03-26 | 2018-11-06 | 福建星瑞格软件有限公司 | 一种基于Hadoop集群任务调度方法及计算机设备 |
| CN109144699A (zh) * | 2018-08-31 | 2019-01-04 | 阿里巴巴集团控股有限公司 | 分布式任务调度方法、装置及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN110012062A (zh) | 2019-07-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110012062B (zh) | 一种多机房任务调度方法、装置及存储介质 | |
| CN110290180B (zh) | 分布式任务调度方法、装置、计算机设备和存储介质 | |
| CN109857535B (zh) | 面向Spark JDBC的任务优先级控制的实现方法及装置 | |
| CN106802826A (zh) | 一种基于线程池的业务处理方法及装置 | |
| CN107515786B (zh) | 资源分配方法、主装置、从装置和分布式计算系统 | |
| CN113032125A (zh) | 作业调度方法、装置、计算机系统和计算机可读存储介质 | |
| CN107992362A (zh) | 自动化性能测试的方法、装置及系统 | |
| CN113434284B (zh) | 一种隐私计算服务端设备、系统及任务调度方法 | |
| CN113051054A (zh) | 调度人工智能平台资源的方法、设备和计算机可读存储介质 | |
| CN113297080A (zh) | 一种物联网平台的简易测试方法 | |
| CN111722917A (zh) | 性能测试任务的资源调度方法、装置和设备 | |
| WO2019029721A1 (zh) | 任务的调度方法、装置、设备及存储介质 | |
| CN118819864A (zh) | 多类型负载的资源统一调度方法及系统 | |
| CN113703929A (zh) | 一种任务调度方法、系统、计算设备和存储介质 | |
| CN108509264B (zh) | 超时任务调度系统及方法 | |
| CN107479962B (zh) | 一种用于任务下发的方法与设备 | |
| CN106775975B (zh) | 进程调度方法及装置 | |
| CN113626173B (zh) | 调度方法、装置及存储介质 | |
| CN104702664A (zh) | 控制任务服务器的方法及系统 | |
| WO2017124925A1 (zh) | 存储系统的服务质量控制方法和装置 | |
| CN111835809B (zh) | 工单消息分配方法、装置、服务器及存储介质 | |
| CN103647837B (zh) | 多线程报告下载方法和装置 | |
| CN116263699B (zh) | 软硬一体化云主机创建方法、装置、计算设备及存储介质 | |
| CN107391262B (zh) | 一种作业调度方法及装置 | |
| CN112214286B (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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |