CN112000453A - 一种流计算系统的调度方法和系统 - Google Patents
一种流计算系统的调度方法和系统 Download PDFInfo
- Publication number
- CN112000453A CN112000453A CN202010863249.0A CN202010863249A CN112000453A CN 112000453 A CN112000453 A CN 112000453A CN 202010863249 A CN202010863249 A CN 202010863249A CN 112000453 A CN112000453 A CN 112000453A
- Authority
- CN
- China
- Prior art keywords
- work
- nodes
- node
- local
- graph
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 84
- 230000008859 change Effects 0.000 claims abstract description 22
- 238000010586 diagram Methods 0.000 claims abstract description 19
- 238000012217 deletion Methods 0.000 claims abstract description 8
- 230000037430 deletion Effects 0.000 claims abstract description 8
- 238000004891 communication Methods 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims description 11
- 239000000725 suspension Substances 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 70
- 230000008569 process Effects 0.000 description 28
- 230000036961 partial effect Effects 0.000 description 13
- 230000015654 memory Effects 0.000 description 9
- 238000007792 addition Methods 0.000 description 7
- 238000001914 filtration Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012508 change request Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000010223 real-time analysis Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- 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/5061—Partitioning or combining of resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例公开了一种流计算系统的调度方法和系统。所述流计算系统包括多个工作节点,所述方法包括:确定目标工作节点;获取反映所述目标工作节点相关局部作业流程的局部作业图;基于调度信息更新所述局部作业图,其中,所述调度信息包括工作节点的增加或删除,和/或局部作业流程的变更;基于所述更新后的局部作业图生成第一控制信息;发送所述第一控制信息至所述更新后的局部作业图所涉及的工作节点,以使所述更新后的局部作业图所涉及的工作节点基于所述第一控制信息修改其上游和/或下游的工作节点信息,从而完成调度。以使流计算系统具备高效的流作业调度方法,以提高流计算系统处理数据的效率。
Description
技术领域
本说明书涉及流计算技术领域,特别涉及一种流计算系统的调度方法和系统。
背景技术
近年来,流计算系统中的流计算方式被作为新的数据计算结构,它可以实时的获取来自不同数据源的数据,并经过实时分析处理以获取有价值的信息。
目前,在流计算系统处理流动数据的过程中,可能会涉及到关于流动数据的作业进行调度的情况,例如分配多个工作节点完成相应的流计算作业,以使流计算系统适应当前的作业需求。流计算系统中流作业的调度方式(例如,工作节点的调度方式)决定流计算系统处理流动数据的效率,由此,需要一种高效的流计算系统的流作业调度方法,以提高流计算系统处理流动数据的效率。
发明内容
本说明书实施例之一提供一种流计算系统的调度方法。所述流计算系统包括多个工作节点,所述方法包括:确定目标工作节点;获取反映所述目标工作节点相关局部作业流程的局部作业图;基于调度信息更新所述局部作业图,其中,所述调度信息包括工作节点的增加或删除,和/或局部作业流程的变更;基于所述更新后的局部作业图生成第一控制信息;发送所述第一控制信息至所述更新后的局部作业图所涉及的工作节点,以使所述更新后的局部作业图所涉及的工作节点基于所述第一控制信息修改其上游和/或下游的工作节点信息,从而完成调度。
本说明书实施例之一提供一种流计算系统的调度系统,所述流计算机系统包括多个工作节点,其中,所述调度系统包括:第一确定模块,用于确定目标工作节点;获取模块,用于获取反映所述目标工作节点相关局部作业流程的局部作业图;第一更新模块,用于基于调度信息更新所述局部作业图,其中,所述调度信息包括工作节点的增加或删除,和/或局部作业流程的变更;生成模块,用于基于所述更新后的局部作业图生成第一控制信息;第一发送模块,用于发送所述第一控制信息至所述更新后的局部作业图所涉及的工作节点,以使所述更新后的局部作业图所涉及的工作节点基于所述第一控制信息修改其上游和/或下游的工作节点信息,从而完成调度。
本说明书实施例之一提供一种流计算系统的调度装置。所述调度装置包括处理器。所述处理器可以用于执行如上所述的流计算系统的调度方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的示例性流计算系统的示意图;
图2是根据本说明书一些实施例所示的流计算系统的调度方法的示例性流程图;
图3是根据本说明书一些实施例所示的流计算系统的变更示意图;
图4是根据本说明书一些实施例所示的流计算系统的调度系统的模块图;
图5是根据本说明书一些实施例所示的用于表示流计算系统的作业流程的示例性有向无环图的示意图;
图6是根据本说明书一些实施例所示的示例性局部作业图的示意图;
图7是根据本说明书一些实施例所示的示例性更新后的局部作业图的示意图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书一些实施例所示的示例性的流计算系统的示意图。在一些实施例中,流计算系统100可以用于处理的大规模的流动数据。如图1所示,流计算系统100中可以包括多个工作节点,其中又可以分为数据源节点110、中间工作节点120以及数据输出节点130。在一些实施例中,流计算系统100的数据处理流程(或称为作业流程)可以使用有向无环图(DAG)表示。如图5所示,图5是根据本说明书一些实施例所示的用于表示流计算系统的作业流程的示例性有向无环图的示意图。如图5所示,有向无环图500中的图节点(图5中使用圆圈表示,例如,图节点510、520-1/2、530-1/2/3、以及540-1/2)可以用于表示流计算系统100的组成部分,例如,数据源节点110、中间工作节点120、或数据输出节点130。有向无环图500中图节点与图节点之间的有向连接,可以用于表示流计算系统100中的节点之间的数据流向。例如,图节点520-1/2对应的流计算系统100中的节点(例如,工作节点)可以在完成自身数据计算任务后将计算结果发送至图节点530-1/2/3对应的流计算系统100中的节点(例如,上述工作节点的下游工作节点)。在一些实施例中,流计算系统100中的每个组成部分(例如,每个节点)都可以在本地存储有表示作业流程的有向无环图。节点间根据有向无环图确定各自从哪些节点接收数据,又将处理过后的数据传输至哪些节点。
数据源节点110可以是流计算系统100中用于接收需进行流计算处理的数据的节点。流动数据(本说明书中也可以被称为流数据)可以依次通过数据源节点110输入至流计算系统100中,由流计算系统100(例如,中间工作节点120)对输入的数据进行流计算处理。在一些实施例中,数据源节点110可以以数据接口、缓存、数据库等形式实现。例如,不同出处的流数据可以通过不同的数据接口进入流计算系统100,以进行后续处理。又例如,不同出处的流数据可以首先暂存在缓存、或数据库中,再在合适的时机(例如,最先处理流数据的工作节点已完成上一部分数据计算)后进入流计算系统100的处理过程。在一些实施例中,数据源节点110也可以承担一部分的数据处理任务,即可以对接收到的数据进行处理后输出给位于其下游的中间工作节点120进行后续处理。
中间工作节点120可以是流计算系统100中用于主要负责进行流式计算的处理单元/处理设备,例如,计算机服务器。在流计算系统100接收到一批流数据时,该批数据可以依照流计算系统100的作业流程,流经一个或多个中间工作节点120。在本说明书中,术语“一个或多个”可以表示一个、两个、三个及三个以上。这些工作节点可以完成在各自在整个流计算作业中的一个处理流程,最后得到针对于该批数据的处理结果。用于表示流计算系统100的作业流程的有向无环图示出了一个或多个中间工作节点120在整个作业流程中对于数据的处理顺序。同时,每一个中间工作节点都具有在整个数据处理流程中所负责的计算任务。基于这些处理顺序,以及中间工作节点的计算任务,中间工作节点之间的关系可以是串联关系(按照先后顺序依次处理数据),也可以是并联关系(同时执行相同的处理任务)。串联的工作节点构成了上下游关联。例如,在前的工作节点首先进行数据计算,并将计算结果传输至在后的工作节点继续进行计算。则在前的工作节点被称为在后的工作节点的上游节点。在后的工作节点被称为在前的工作节点的下游节点。并联的工作节点构成了平行的工作组。例如,执行相同的计算任务的工作节点可以属于同一个工作组。在一些实施例中,每个中间工作节点120只处理指定该节点负责的至少一部分数据,在中间工作节点120处理完指定部分数据时,将处理结果以及剩下未处理的数据发送给下一个中间工作节点120,由下一个中间工作节点120继续对数据的剩余部分中指定处理部分进行处理。直至最后一个中间工作节点120处理完指定处理部分,则这一批数据已通过流计算处理完成,可以通过将这处理完的数据发送至数据输出节点130进行数据输出。这样,可以持续的对数据进行计算,满足实时性快速性的要求。
数据输出节点130可以是流计算系统100中用于将通过流计算处理完成的整体数据进行输出的节点。在一些实施例中,数据输出节点130可以接收由最后一个中间工作节点120处理后(或最后一个数据处理流程处理后)输出的数据(相当于已经通过流计算处理完成的数据),通过数据输出节点130将其进行输出,以完成这一批数据的流计算处理。在一些实施例中,数据输出节点130也可以对其接收的数据做进一步的处理,包括但不限于压缩、格式转换等操作,以便数据存储或传输。
在一些实施例中,流计算系统100的工作节点可包含一个或多个处理器(例如,单芯处理器或多核多芯处理器)。仅仅作为范例,中间工作节点120可包含中央处理器(CPU)、专用集成电路(ASIC)、专用指令处理器(ASIP)、图形处理器(GPU)、物理处理器(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编辑逻辑电路(PLD)、控制器、微控制器单元、精简指令集电脑(RISC)、微处理器等或以上任意组合。流计算系统100的工作节点之间通过网络连接。在系统中各工作节点之间的网络可以包括有线网络和/或无线网络。例如,网络可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(LAN)、广域网络(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络(ZigBee)、近场通信(NFC)、设备内总线、设备内线路、线缆连接等或其任意组合。任意两个工作节点之间的网络连接可以是采用上述一种方式,也可以是采取多种方式。
流计算系统100在实际处理流动数据的过程中,通常会涉及到关于数据的流作业的调度工作,例如,工作节点的增加或删除,或者更改工作节点之间的连接关系。以增加某一中间工作节点120为例,在流计算系统100中对于中间工作节点120的增加通常采用的方式,可以是在流计算系统100在接收变更请求后,根据变更请求修改流计算系统100的作业流程对应的有向无环图(例如,增加有向无环图中的图节点个数,以及与增加其他图节点与新增节图点之间的有向连接)。随后,可以根据修改后的有向无环图,预拉起需要加入流计算系统100的工作节点。例如,该新增的工作节点已经事先与流计算系统100中的其他节点产生物理连接,比如数据线之间的连通,但并未启动,不接受数据。将此时该新增的工作节点处于独立的状态,与流计算系统100尚未产生联系,与其他工作节点不具备上下游关系,调度并未生效。接下来,流计算系统100将接收到包括有修改后的有向无环图的控制信息,例如,由数据源节点110,接收。数据源节点110可以在接收到控制信息后将暂停接收输入的数据,并将该控制信息下发至流计算系统100中的每一个节点。此时,流计算系统100中的工作节点将按照作业流程继续处理已有的数据,同时还会基于修改后的有向无环图至少修改其下游工作节点信息。在一些实施例中,工作节点还会基于修改后的有向无环图修改其上游工作节点信息。在一些实施例中,当前工作节点可以按照原有的下游工作节点信息将已有的数据处理结果下发到其下游工作节点,按照修改后的下游工作节点信息将控制信息下发到其下游工作节点。在另一些实施例中,当前工作节点可以按照修改后的下游工作节点信息将控制信息连同处理结果一并下发到其下游工作节点。在一些实施例中,节点在接收到控制信息后,还可以根据其中包含的修改后的有向无环图,更新本地存储的有向无环图,使其完成在整个作业流程中的更新。当控制信息通过数据输出节点130输出时,说明流计算系统100中的每一个节点均接收控制信息并完成了原有数据的处理,同时有向无环图的更新工作也处理完毕。此时流计算系统100可以接收到重新接收数据的指令,数据源节点110重新开始接收数据,流计算系统100将重新开始作业。值得注意的是,在上述过程中,新增图节点会接收到上游工作节点下发的数据(如控制信息或者控制信息及上游工作节点的处理结果),新增工作节点会完成相应的数据计算以及有向无环图更新(例如,存储修改后的有向无环图),这意味着该节点已加入流计算系统100。
基于以上的描述可知,由于在整个作业调度的过程中,数据源节点110处于关闭状态的时间较长(需要等待流计算系统100中所有的节点完成有向无环图的更新),以至于对流作业整体正常运行情况产生较大的影响,降低对流计算系统100的处理效率。
本说明书的一些实施例中,通过构建局部有向无环图,其中包括与变更请求有关的工作节点以及与变更工作节点有关联的工作节点,例如,变更工作节点上游的工作节点、以及变更工作节点下游的工作节点,以及通过更新局部有向无环图,来更新流计算系统100的结构。进而基于局部有向无环图构建控制信息,通过将控制信息发送于与变更的工作节点有关联的工作节点,以完成流计算系统100中作业调度。可以理解,当局部有向无环图涉及的工作节点与系统100中其他分支的关联不是很紧密,如当前局部有向无环图涉及的工作节点与其他分支来说是并行的,仅作为示例,图3所示的最右侧的分支与最左侧的分支关联较小,本说明一些实施例提出的局部作业流程更变是切实可行的。又例如,局部作业流程变更耽误的时间可以远小于全局作业流程变更,当系统时效要求不高时,即使局部作业流程涉及的工作节点暂停作业,其对整个系统影响是可以被接受的。以下是对本说明书一些实施例中所示的流计算系统的调度方法的详细说明。
图2是根据本说明书一些实施例所示的流计算系统的调度方法的示例性流程图。在一些实施例中,流程200可以由处理设备(如流计算系统的控制或调度设备)执行。例如,流程200可以以程序或指令的形式存储在存储装置(如处理设备的自带存储单元或外接存储设备)中,所述程序或指令在被执行时,可以实现流程200。在一些实施例中,流程200可以由流计算系统100的调度系统400执行。如图2所示,流程200可以包括下述步骤。
步骤202,确定目标工作节点。该步骤可由第一确定模块410执行。
在一些实施例中,所述目标工作节点可以是需要进行调度的工作节点。所述调度可以是为该目标工作节点进行扩容(例如增加该目标工作节点的并行工作节点)、为该目标工作节点进行缩容例(如减少该目标工作节点的并行工作节点)、为该目标工作节点调整参与的数据处理流程。可以知道的是,流计算系统100中每一个工作节点都可能参与作业流程中的一个数据处理流程,例如,数据转换流程、数据过滤流程、数据计算流程、数据检验流程等。每个数据处理流程可以对输入的数据进行指定的处理操作,一个数据处理流程可以有多个工作节点参与,这些工作节点可以是并行的。
因此,当参与某一数据处理流程的工作节点无法满足该数据处理流程的需要(例如,参与该数据处理流程的一个或多个工作节点无法在规定时间内无法完成预定量的数据处理),或能够超额满足该数据处理流程的需要(例如,参与该数据处理流程的一个或多个工作节点在少于规定时间内完成预定量的数据处理或可以在规定时间内完成超额的数据处理)时,可以增加参与该数据处理流程的工作节点数量,或减少参与该数据处理流程的工作节点数量,或者两者同步进行,例如将参与某一数据处理流程的一个或多个节点调整至参与另一数据处理流程。这些原先参与数据处理流程的工作节点,就可以被称为是目标工作节点。结合参阅图3,图3为根据本说明书一些实施例所示的流计算系统的变更示意图。如图3所示,图中的仅由流计算系统300的工作节点320参与的数据处理流程需要根据实际作业需求,安排两个工作节点来完成。也就是说,需要为工作节点320进行扩容,增加一个并行的工作节点330(本说明书中也可以被称为并行工作节点330)。以使调度完成后,工作节点320与并行工作节点330可以共同完成原先由工作节点320参与的数据处理流程。因而,工作节点320就可以被称为是目标工作节点(例如,目标工作节点320)。
在一些实施例中,第一确定模块410可以基于流计算系统的各个节点的作业状态或作业效率来确定所述目标工作节点。作为示例,假定一个流计算系统中包括有两个数据源节点从源头去接收、处理数据,有三个中间工作节点是对接收到的处理数据后进行过滤处理,以及有一个数据输出节点是用于接收过滤处理后的数据,并进行输出。在流计算系统的连续运行过程中,发现由于接收的数据量过大,原本用于过滤处理的三个工作节点不够用,需要增加工作节点例如增加到五个来进行过滤处理。第一确定模块410则可以将这三个工作节点确定为目标工作节点。在一些实施例中,第一确定模块410可以通过接收外部指令以确定目标工作节点。例如,可以接收流计算系统100的操作员的指令,确定由操作员指定的工作节点作为目标工作节点。
流程200中的剩余步骤,包括步骤204至步骤210,可以将前述步骤确定的一个或多个(同级或并行的)目标节点看作一个目标节点进行的(如将前述步骤提到的三个工作节点看作是一个整体)。为描述方便,以下以目标工作节点为单个的情况进行说明。即,原来执行某数据处理流程的工作节点只有一个,现需要增加一个工作节点与原来的工作节点并行处理该数据处理流程。
步骤204,获取反映所述目标工作节点相关局部作业流程的局部作业图。该步骤可由获取模块420执行。
在一些实施例中,所述目标工作节点相关的局部作业流程,可以是目标工作节点,以及与目标工作节点直接关联的其他工作节点在参与的部分作业流程。所述直接关联可以是指有数据的直接往来,比如数据接收和/或数据传输。参考图3,与目标工作节点320有直接关联的工作节点有工作节点310,以及工作节点340。目标工作节点320从工作节点310处接收数据以执行数据处理,向工作节点340输出数据处理结果以使工作节点340开始自身的计算任务。因此,工作节点310、目标工作节点320、以及工作节点340所参与的作业流程,可以被称为所述目标工作节点相关的局部作业流程。
在一些实施例中,所述局部作业图可以是所述局部作业流程在整个作业流程中所占的部分对应在表示整个作业流程的有向无环图中的部分。利用有向无环图表示的局部作业图,其中的图节点可以是与所述局部作业流程所涉及/所关联的工作节点一一对应。继续参考上述示例,局部作业图中包含有与工作节点310、目标工作节点320、以及工作节点340相对应的图节点。同时,图节点与图节点之间的有向连接可以表示局部作业流程在工作节点之间的流向。也就是说,图节点与图节点之间的有向连接可以指示这些工作节点参与作业流程的先后顺序。
在一些实施例中,获取模块420可以参照表示整个作业流程的有向无环图,以确定所述局部作业图。在一些实施例中,获取模块420可以获取反映流计算系统的全局作业流程的全局作业图。所述全局作业流程可以是指整个流计算系统例如流计算系统100的整个作业流程,包括从最开始的数据输入到最终的数据输出。基于前述说明,流计算系统的全局作业流程可以使用有向无环图表示。这个有向无环图则可以是所述全局作业图。所述全局作业图可以在流计算系统稳定运行后,存储于各个该系统各个组成部分例如工作节点的本地存储器/存储设备内,或可以是事先存储在流计算系统的控制设备或调度设备的自带存储器/存储设备或外接存储器/存储设备内。获取模块420可以与这些存储器/存储设备通信后,获取所述全局作业图。
在一些实施例中,获取模块420可以基于全局作业图确定目标工作节点的一个或以上上游工作节点,以及一个或以上下游工作节点。所述上游工作节点可以是在目标工作节点之前参与作业流程且将作为目标工作节点的直接数据来源的工作节点。所述下游工作节点可以是在目标工作节点之后参与作业流程且将作为目标工作节点的直接数据输出的工作节点。可以知道的是,以有向无环图表示的全局作业图中,各个图节点以及图节点之间的有向连接已经很清楚的表示了流计算系统中的各个组成部分例如多类型的节点以及这些组成部分之间的作业流程的流向例如数据传输方向。因此,获取模块420可以依据全局作业图,得到这些工作节点。参考图5,对于图节点530-2对应的目标工作节点,图节点520-1以及520-2对应的工作节点可以是它的上游工作节点,而图节点540-1以及540-2对应的工作节点则可以是它的下游工作节点。
在一些实施例中,获取模块420可以基于目标工作节点、一个或以上上游工作节点、一个或以上下游工作节点及其之间的局部作业流程,确定局部作业图。在一些实施例中,在确定目标工作节点的上/下游工作节点,以及它们之间所参与的局部作业之后,获取模块420可以从全局作业图中,得到局部作业图。作为示例,继续参考图5,获取模块420可以从全局作业图中确定这些工作节点对应的图节点,并得到这些工作节点直接的有向连接,组成所述局部作业图。如图5中所示的矩形虚线框内的部分,提取后可以得到所述局部作业图。例如图6,图6是根据本说明书一些实施例所示的示例性局部作业图的示意图。图6中的局部作业图600只包含了目标工作节点对应的图节点530-2,它的上游工作节点对应的图节点520-1以及520-2,以及它的下游工作节点对应的图节点540-1以及540-2。值得注意的是,在获取局部作业图时,只会选取目标工作节点对应的图节点以及目标工作节点的上/下游工作节点对应的图节点。除此之外,例如目标工作节点的上/下游工作节点的上/下游节点对应的图节点,将不会被选取在内。这样在后续的调度过程中,将会将变更限制在局部作业图的图节点对应的工作节点内部,对整个作业流程(全局作业流程)将不产生根本影响。
不难理解,将目标工作节点为多个时,所述一个或以上上游工作节点包括每个目标工作节点的上游工作节点,所述一个或以上下游工作节点包括每个目标工作节点的下游工作节点。
步骤206,基于调度信息更新所述局部作业图。该步骤可以由更新模块430执行。
在一些实施例中,所述调度信息可以包括工作节点的增加或删除,和/或局部作业流程的变更。结合步骤202的描述,工作节点的增加或删除,可以是为目标工作节点增加或删除并行的工作节点,以使其参与目标工作节点参与的数据流程,或将其移除原先共同与目标工作节点参与的数据流程。而局部作业流程的变更,可以是在增加工作节点后,确定新的工作节点与其他工作节点之间的数据流向,或是在删除工作节点之后,移除这个工作节点与其他工作节点之间的数据流向。体现在作业图例如局部作业图中,则可以是增减图节点,以及增减图节点之间的有向连接。
在一些实施例中,为了更新所述局部作业图,更新模块430可以基于调度信息在局部作业图中增加或删除图中的图节点,和/或更改图节点间的有向连接。在一些实施例中,增加或删除的图节点对应的工作节点与目标工作节点并行。因此,目标工作节点的上/下游工作节点,同样也会是增加或删除的工作节点的上/下游工作节点。参考图7,图7是根据本说明书一些实施例所示的示例性更新后的局部作业图的示意图。如图7所示,更新后的局部作业图700描述的是增加工作节点的情况。更新模块430可以在局部作业图中增加图节点710,其与目标工作节点对应的图节点530-2并行。另外,第一更新模块430将添加图节点520-1以及520-2与图节点710之间的有向连接,其由图节点520-1以及520-2指向图节点710。同时的,更新模块430将添加图节点710与图节点540-1以及540-2之间的有向连接,其由图节点710指向图节点520-1以及520-2。
在一些实施例中,更新模块430可以基于更新后的局部作业图更新反映所述流计算系统的全局作业流程的全局作业图。由于局部作业图中所反应的信息并不会影响全局作业图中的其他部分,例如,局部作业图中目标工作节点的上游工作节点对应的图节点,再上游的图节点,以及两者之间的有向连接在局部作业图更新前后是不会发生变化的。因此,更新模块430可以直接使用更新后的局部作业图替换之前的局部作业图,完成反应流计算系统的全局作业流程的全局作业图的更新。
步骤208,基于所述更新后的局部作业图生成第一控制信息。该步骤可以由生成模块440执行。
可以理解,更新后的局部作业图可以清楚的指示增加或删除的图节点,以及与其相关的有向连接。则生成模块440可以利用更新后的局部作业图中所包含的,相较于更新前的局部作业图中的变更信息生成第一控制信息。例如,假定更新后的局部作业图是由于增加了目标工作节点的并行工作节点而得到,则第一控制信息可以包含有指示目标工作节点的上/下游工作节点建立与该并行工作节点之间的通信连接,以及数据传输。比如,新增的通信连接可以包括:由目标工作节点的上游工作点传输至该并行工作节点的数据通信,以及由该并行工作节点传输至目标工作节点的上游工作点的数据通信。
在一些实施例中,所述第一控制信息可以包括局部数据挂起信息,用于指示一个或以上上游工作节点暂停接收数据。在目标工作节点的上游工作节点暂停接收数据后,可以在各个局部作业流程涉及的工作节点在变更节点信息时(例如,上下游节点信息、和/或节点间作业流程比如数据流向等)优先执行所述第一控制信息中的指令,局部作业流程以外的工作节点则可以继续作业,从流计算系统全局来看,大部分数据处理作业无需停滞或拖延,提高了系统的计算效率。
在一些实施例中,所述第一控制信息可以包括更新后的局部作业图涉及的工作节点的上游工作节点和/或下游工作节点的通信地址,以使更新后的局部作业图所涉及的工作节点可以基于第一控制信息更新与上游工作节点和/或下游工作节点的通信连接关系。基于图1中的描述,当需要增加工作节点时或之前,新增的工作节点已经与流计算系统产生了物理连接,只是未发生通信或数据交互,从而独立于流计算系统之外。同时,已加入流计算系统的工作节点,只需要断开与其之间的连接,不再与其进行数据交互,就可以将其排除在流计算系统之外。因此,第一控制信息中可以包含更新后的局部作业图涉及的工作节点的上游工作节点和/或下游工作节点的通信地址。每个工作节点在接收到第一控制信息后,可以根据通信地址发起或断开与新增或删除的工作节点之间的通信连接,将新增或删除的工作节点加入或移除流计算系统。
在一些实施例中,所述第一控制信息还可以包括更新后的局部作业图。更新后的局部作业图所涉及的工作节点在接收到第一控制信息后,可以基于更新后的局部作业图,更新存储于本地的全局作业图。
步骤210,发送所述第一控制信息至所述更新后的局部作业图所涉及的工作节点,以使所述更新后的局部作业图所涉及的工作节点基于所述第一控制信息修改其上游和/或下游的节点信息,从而完成调度。该步骤可以由传输模块450执行。
在一些实施例中,传输模块450可以将第一控制信息发送给更新后的局部作业图所涉及的工作节点,包括所述一个或多个上游工作节点、目标工作节点、一个或多个下游工作节点。所述更新后的局部作业图所对应的局部作业流程,可以看做是一个全局子作业流程。所述一个或多个上游工作节点,可以被看做是这个全局子作业流程的数据输入节点(类似于),所述一个或多个下游工作节点,可以被看做是这个全局子作业流程的数据输出节点。传输模块450可以将第一控制信息首先发送到所述一个或多个上游节点,随后根据更新后的局部作业图所对应的局部作业流程,传输至其他工作节点,以使每个工作节点开始其相关节点信息的更新以完成调度。关于调度过程中,更新后局部作业图涉及的工作节点间的数据流向类似与图1中全局工作节点调度过程中的数据流向。
参考图3,图3示出的是为目标工作节点增加一个并行工作节点。如图3所示,第一控制信息350可以首先被发送给更新后的局部作业图对应的局部作业流程360中涉及到的工作节点310(本说明书中也可以被称为上游工作节点310)。在一些实施例中,第一控制信息350可以是从数据源节点110处进入流计算系统。类似于流计算系统的全局作业流程,第一控制信息350可以被传递到上游工作节点310。在此之前,其他工作节点在接收到第一控制信息350时,由于与其相关的工作节点都未进行变更,因此不会进行节点信息的变更。在上游工作节点310接收到第一控制信息350后,将基于第一控制信息350中所包含的局部数据挂起信息,停止从其上游工作节点接收数据。随后,上游工作节点310可以根据第一控制信息350中所包含的关于其自身的上游工作节点和/或下游工作节点的通信地址,建立起与这些工作节点的通信连接。例如,上游工作节点310将保持与其原有的上游工作节点,例如局部作业流程之外的某一或某些工作节点之间的通信连接,以及与其原有的下游工作节点,目标工作节点320,的通信连接,将建立其与新增的下游工作节点,目标工作节点320的并行工作节点330,之间的通信连接。通信连接建立完毕后,第一控制信息350将被传递到目标工作节点320以及并行工作节点330。目标工作节点320将保持与其原有的上游工作节点310以及工作节点340(本说明书中也可以被称为下游工作节点340)之间的通信连接。而并行工作节点330将建立起与其上游工作节点,上游工作节点310,之间的通信连接(在一些实施例中,当上游工作节点310执行后,并行工作节点330无需重复执行),并建立起与其下游工作节点,下游工作节点340,之间的通信连接。随后,第一控制信息350将被传递到下游工作节点340。同样的,下游工作节点340将保持与其原有的上游工作节点,目标工作节点320,之间的通信连接,以及与其原有的下游工作节点,例如局部作业流程之外的某一或某些工作节点,之间的通信连接之间的通信连接,建立起与其上游工作节点,并行工作节点330,之间的的通信连接(在一些实施例中,当并行工作节点330执行后,下游工作节点340无需重复执行)。完毕后,第一控制信息350将从下游工作节点340出输出,而更新后的局部作业图所涉及的工作节点都已完成其上下游的节点信息的变更,调度完成。
在一些实施例中,调度系统400(例如第二确定模块460)可以确定所述调度是否完成。若调度完成(例如,检测到第一控制信息从下游工作节点340处输出),则第二确定模块460可以生成第二控制信息并发送至所述一个或以上上游工作节点,以指示所述一个或以上上游工作节点恢复接收数据。调度完成,说明流计算系统的构架(例如,参与局部作业流程的工作节点)满足要求,可以以更新后的构架继续进行流计算处理任务。此时,第二控制信息可以被发送到更新后的局部作业图涉及的工作节点上,指示这些工作节点重新接收数据,继续开始流作业数据处理。
应当注意的是,上述有关流程200的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程200进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图4是根据本说明书一些实施例所示的流计算系统100的调度系统400的模块图。如图4所示,调度系统400可以包括第一确定模块410、获取模块420、更新模块430、生成模块440、传输模块450、以及第二确定模块460。
第一确定模块410可以确定目标工作节点。所述目标工作节点可以是需要进行调度的工作节点。所述调度可以是为该目标工作节点进行扩容(例如增加该目标工作节点的并行工作节点)、为该目标工作节点进行缩容例(如减少该目标工作节点的并行工作节点)、为该目标工作节点调整参与的数据处理流程。在一些实施例中,第一确定模块410可以基于流计算系统的各个节点的作业状态或作业效率来确定所述目标工作节点。作为示例,假定一个流计算系统中包括有两个数据源节点从源头去接收、处理数据,有三个中间工作节点是对接收到的处理数据后进行过滤处理,以及有一个数据输出节点是用于接收过滤处理后的数据,并进行输出。在流计算系统的连续运行过程中,发现由于接收的数据量过大,原本用于过滤处理的三个工作节点不够用,需要增加工作节点例如增加到五个来进行过滤处理。第一确定模块410则可以将这三个工作节点确定为目标工作节点。在一些实施例中,第一确定模块410可以通过接收外部指令以确定目标工作节点。例如,可以接收流计算系统100的操作员的指令,确定由操作员指定的工作节点作为目标工作节点。
获取模块420可以获取反映所述目标工作节点相关局部作业流程的局部作业图。所述目标工作节点相关的局部作业流程,可以是目标工作节点,以及与目标工作节点直接关联的其他工作节点在参与的部分作业流程。所述直接关联可以是指有数据的直接往来,比如数据接收和/或数据传输。所述局部作业图可以是所述局部作业流程在整个作业流程中所占的部分对应在表示整个作业流程的有向无环图中的部分。利用有向无环图表示的局部作业图,其中的图节点可以是与所述局部作业流程所涉及/所关联的工作节点一一对应。在一些实施例中,获取模块420可以参照表示整个作业流程的有向无环图,以确定所述局部作业图。在一些实施例中,获取模块420可以获取反映流计算系统的全局作业流程的全局作业图,并基于全局作业图确定目标工作节点的一个或以上上游工作节点,以及一个或以上下游工作节点。随后,获取模块420可以基于目标工作节点、一个或以上上游工作节点、一个或以上下游工作节点及其之间的局部作业流程,确定局部作业图。
更新模块430可以基于调度信息更新所述局部作业图。所述调度信息可以包括工作节点的增加或删除,和/或局部作业流程的变更。在一些实施例中,为了更新所述局部作业图,更新模块430可以基于调度信息在局部作业图中增加或删除图中的图节点,和/或更改图节点间的有向连接。在一些实施例中,增加或删除的图节点对应的工作节点与目标工作节点并行。在一些实施例中,更新模块430可以基于更新后的局部作业图更新反映所述流计算系统的全局作业流程的全局作业图。由于局部作业图中所反应的信息并不会影响全局作业图中的其他部分,例如,局部作业图中目标工作节点的上游工作节点对应的图节点,再上游的图节点,以及两者之间的有向连接在局部作业图更新前后是不会发生变化的。因此,更新模块430可以直接使用更新后的局部作业图替换之前的局部作业图,完成反应流计算系统的全局作业流程的全局作业图的更新。
生成模块440可以基于所述更新后的局部作业图生成第一控制信息。生成模块440可以利用更新后的局部作业图中所包含的,相较于更新前的局部作业图中的变更信息生成第一控制信息。例如,假定更新后的局部作业图是由于增加了目标工作节点的并行工作节点而得到,则第一控制信息可以包含有指示目标工作节点的上/下游工作节点建立与该并行工作节点之间的通信连接,以及数据传输。比如,新增的通信连接可以包括:由目标工作节点的上游工作点传输至该并行工作节点的数据通信,以及由该并行工作节点传输至目标工作节点的上游工作点的数据通信。在一些实施例中,所述第一控制信息可以包括局部数据挂起信息,用于指示一个或以上上游工作节点暂停接收数据。在一些实施例中,所述第一控制信息可以包括更新后的局部作业图涉及的工作节点的上游工作节点和/或下游工作节点的通信地址,以使更新后的局部作业图所涉及的工作节点可以基于第一控制信息更新与上游工作节点和/或下游工作节点的通信连接关系。在一些实施例中,所述第一控制信息还可以包括更新后的局部作业图。更新后的局部作业图所涉及的工作节点在接收到第一控制信息后,可以基于更新后的局部作业图,更新存储于本地的全局作业图。
传输模块450可以发送所述第一控制信息至所述更新后的局部作业图所涉及的工作节点,以使所述更新后的局部作业图所涉及的工作节点基于所述第一控制信息修改其上游和/或下游的工作节点信息,从而完成调度。更新后的局部作业图所涉及的工作节点可以包括所述一个或多个上游工作节点、目标工作节点、一个或多个下游工作节点。传输模块450可以将第一控制信息首先发送到所述一个或多个上游节点,随后根据更新后的局部作业图所对应的局部作业流程,传输至其他工作节点,以使每个工作节点开始其相关节点信息的更新以完成调度。
第二确定模块460可以可以确定所述调度是否完成。若调度完成(例如,检测到第一控制信息从下游工作节点340处输出),则第二确定模块460可以生成第二控制信息并发送至所述一个或以上上游工作节点,以指示所述一个或以上上游工作节点恢复接收数据。
应当理解,图4所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于候选项显示、确定系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,图4中披露的第一确定模块410和第二确定模块460可以是一个系统中的不同模块,也可以是一个模块实现上述的两个或两个以上模块的功能。又例如,各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:通过基于全局作业图的有向无环图构建局部作业图的有向无环图,并基于局部作业图局部作业流程构建相应的包括变更信息的控制信息,仅将其在局部作业图中涉及到的工作节点进行发送及执行相关变更操作,以完成局部作业流程的变更,避免流计算系统全面暂停作业,由此,提高流计算系统的流作业调度效率,进而提高流计算系统处理数据的效率。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (19)
1.一种流计算系统的调度方法,所述流计算系统包括多个工作节点,其中,所述方法包括:
确定目标工作节点;
获取反映所述目标工作节点相关局部作业流程的局部作业图;
基于调度信息更新所述局部作业图,其中,所述调度信息包括工作节点的增加或删除,和/或局部作业流程的变更;
基于所述更新后的局部作业图生成第一控制信息;
发送所述第一控制信息至所述更新后的局部作业图所涉及的工作节点,以使所述更新后的局部作业图所涉及的工作节点基于所述第一控制信息修改其上游和/或下游的工作节点信息,从而完成调度。
2.根据权利要求1所述的方法,其中,所述获取反映所述目标工作节点相关局部作业流程的局部作业图,包括:
获取反映所述流计算系统的全局作业流程的全局作业图;
基于所述全局作业图,确定所述目标工作节点的一个或以上上游工作节点,以及一个或以上下游工作节点;
基于所述目标工作节点、所述一个或以上上游工作节点、所述一个或以上下游工作节点及其之间的局部作业流程,确定所述局部作业图。
3.根据权利要求2所述的方法,其中,所述局部作业图为有向无环图,所述局部作业图中的图节点与所述局部作业流程所涉及的工作节点一一对应,所述局部作业图中的有向连接指示局部作业流程在工作节点之间的流向。
4.根据权利要求3所述的方法,其中,所述基于调度信息更新所述局部作业图,包括:
基于所述调度信息在所述局部作业图中增加或删除图节点,和/或更改图节点间的有向连接。
5.根据权利要求4所述的方法,其中,增加或删除的图节点对应的工作节点与所述目标工作节点并行。
6.根据权利要求2所述的方法,其中,所述方法进一步包括:
基于所述更新的局部作业图更新反映所述流计算系统的全局作业流程的全局作业图。
7.根据权利要求1所述的方法,其中,所述第一控制信息至少包括局部数据挂起信息,用于指示所述一个或以上上游工作节点暂停接收数据。
8.根据权利要求7所述的方法,其中,所述第一控制信息进一步包括所述更新后的局部作业图涉及的工作节点的上游工作节点和/或下游工作节点的通信地址,以使所述更新后的局部作业图所涉及的工作节点基于所述第一控制信息更新与其上游工作节点和/或下游工作节点的通信连接关系。
9.根据权利要求1所述的方法,其中,所述方法进一步包括:
确定所述调度是否完成;
若是,生成第二控制信息并发送至所述一个或以上上游工作节点,以指示所述一个或以上上游工作节点恢复接收数据。
10.一种流计算系统的调度系统,所述流计算系统包括多个工作节点,其中,所述调度系统包括:
第一确定模块,用于确定目标工作节点;
获取模块,用于获取反映所述目标工作节点相关局部作业流程的局部作业图;
更新模块,用于基于调度信息更新所述局部作业图,其中,所述调度信息包括工作节点的增加或删除,和/或局部作业流程的变更;
生成模块,用于基于所述更新后的局部作业图生成第一控制信息;
传输模块,用于发送所述第一控制信息至所述更新后的局部作业图所涉及的工作节点,以使所述更新后的局部作业图所涉及的工作节点基于所述第一控制信息修改其上游和/或下游的工作节点信息,从而完成调度。
11.根据权利要求10所述的系统,其中,为获取反映所述目标工作节点相关局部作业流程的局部作业图,所述获取模块用于:
获取反映所述流计算系统的全局作业流程的全局作业图;
基于所述全局作业图,确定所述目标工作节点的一个或以上上游工作节点,以及一个或以上下游工作节点;
基于所述目标工作节点、所述一个或以上上游工作节点、所述一个或以上下游工作节点及其之间的局部作业流程,确定所述局部作业图。
12.根据权利要求11所述的系统,其中,所述局部作业图为有向无环图,所述局部作业图中的图节点与所述局部作业流程所涉及的工作节点一一对应,所述局部作业图中的有向连接指示局部作业流程在工作节点之间的流向。
13.根据权利要求12所述的系统,其中,为基于调度信息更新所述局部作业图,所述更新模块用于:
基于所述调度信息在所述局部作业图中增加或删除图节点,和/或更改图节点间的有向连接。
14.根据权利要求13所述的系统,其中,增加或删除的图节点对应的工作节点与所述目标工作节点并行。
15.根据权利要求11所述的系统,其中,所述更新模块进一步用于:
基于所述更新的局部作业图更新反映所述流计算系统的全局作业流程的全局作业图。
16.根据权利要求10所述的系统,其中,所述第一控制信息至少包括局部数据挂起信息,用于指示所述一个或以上上游工作节点暂停接收数据。
17.根据权利要求16所述的系统,其中,所述第一控制信息进一步包括所述更新后的局部作业图涉及的工作节点的上游工作节点和/或下游工作节点的通信地址,以使所述更新后的局部作业图所涉及的工作节点基于所述第一控制信息更新与其上游工作节点和/或下游工作节点的通信连接关系。
18.根据权利要求10所述的系统,其中,所述系统进一步包括第二确定模块,用于:
确定所述调度是否完成;
若是,用于生成第二控制信息并发送至所述一个或以上上游工作节点,以指示所述一个或以上上游工作节点恢复接收数据。
19.一种流计算系统的调度装置,其中,所述装置包括处理器,所述处理器用于执行权利要求1-9所述的流计算系统的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010863249.0A CN112000453B (zh) | 2020-08-25 | 2020-08-25 | 一种流计算系统的调度方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010863249.0A CN112000453B (zh) | 2020-08-25 | 2020-08-25 | 一种流计算系统的调度方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000453A true CN112000453A (zh) | 2020-11-27 |
CN112000453B CN112000453B (zh) | 2024-06-28 |
Family
ID=73471076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010863249.0A Active CN112000453B (zh) | 2020-08-25 | 2020-08-25 | 一种流计算系统的调度方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112000453B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434323A (zh) * | 2021-06-28 | 2021-09-24 | 浙江大华技术股份有限公司 | 数据中台的任务流控制方法及相关装置 |
CN113515220A (zh) * | 2021-07-23 | 2021-10-19 | 上海商汤科技开发有限公司 | 任务处理方法及装置、电子设备和存储介质 |
CN113672396A (zh) * | 2021-10-25 | 2021-11-19 | 中电云数智科技有限公司 | 一种流式计算作业处理方法以及装置 |
CN113868574A (zh) * | 2021-09-18 | 2021-12-31 | 北京仁科互动网络技术有限公司 | 基于Saas模式的标签服务系统、方法、设备及介质 |
CN114579261A (zh) * | 2022-04-29 | 2022-06-03 | 支付宝(杭州)信息技术有限公司 | 多语言混合流的处理方法和装置 |
WO2022257247A1 (zh) * | 2021-06-11 | 2022-12-15 | 腾讯云计算(北京)有限责任公司 | 数据处理方法、装置及计算机可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6546364B1 (en) * | 1998-12-18 | 2003-04-08 | Impresse Corporation | Method and apparatus for creating adaptive workflows |
JP2003169089A (ja) * | 2001-11-29 | 2003-06-13 | Ancl Inc | ストリームデータ分散配信方法及びそのシステム |
JP2006018529A (ja) * | 2004-06-30 | 2006-01-19 | Canon Software Inc | ワークフローシステムおよびワークフローシステムの制御方法およびプログラムおよび記録媒体 |
US20080005392A1 (en) * | 2006-06-13 | 2008-01-03 | International Business Machines Corporation | Dynamic stabilization for a stream processing system |
US20110067030A1 (en) * | 2009-09-16 | 2011-03-17 | Microsoft Corporation | Flow based scheduling |
US20110225565A1 (en) * | 2010-03-12 | 2011-09-15 | Van Velzen Danny | Optimal incremental workflow execution allowing meta-programming |
CN103631657A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的任务调度算法 |
CN103995735A (zh) * | 2013-02-14 | 2014-08-20 | 韩国电子通信研究院 | 用于调度工作流作业的设备和方法 |
US20170223075A1 (en) * | 2014-10-22 | 2017-08-03 | Huawei Technologies Co., Ltd. | Streaming Application Upgrading Method, Master Node, and Stream Computing System |
CN110532072A (zh) * | 2019-07-24 | 2019-12-03 | 中国科学院计算技术研究所 | 基于微内核操作系统的分布式流式数据处理方法及系统 |
-
2020
- 2020-08-25 CN CN202010863249.0A patent/CN112000453B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6546364B1 (en) * | 1998-12-18 | 2003-04-08 | Impresse Corporation | Method and apparatus for creating adaptive workflows |
JP2003169089A (ja) * | 2001-11-29 | 2003-06-13 | Ancl Inc | ストリームデータ分散配信方法及びそのシステム |
JP2006018529A (ja) * | 2004-06-30 | 2006-01-19 | Canon Software Inc | ワークフローシステムおよびワークフローシステムの制御方法およびプログラムおよび記録媒体 |
US20080005392A1 (en) * | 2006-06-13 | 2008-01-03 | International Business Machines Corporation | Dynamic stabilization for a stream processing system |
US20110067030A1 (en) * | 2009-09-16 | 2011-03-17 | Microsoft Corporation | Flow based scheduling |
US20110225565A1 (en) * | 2010-03-12 | 2011-09-15 | Van Velzen Danny | Optimal incremental workflow execution allowing meta-programming |
CN103995735A (zh) * | 2013-02-14 | 2014-08-20 | 韩国电子通信研究院 | 用于调度工作流作业的设备和方法 |
KR20140102478A (ko) * | 2013-02-14 | 2014-08-22 | 한국전자통신연구원 | 워크플로우 작업 스케줄링 장치 및 그 방법 |
CN103631657A (zh) * | 2013-11-19 | 2014-03-12 | 浪潮电子信息产业股份有限公司 | 一种基于MapReduce的任务调度算法 |
US20170223075A1 (en) * | 2014-10-22 | 2017-08-03 | Huawei Technologies Co., Ltd. | Streaming Application Upgrading Method, Master Node, and Stream Computing System |
CN110532072A (zh) * | 2019-07-24 | 2019-12-03 | 中国科学院计算技术研究所 | 基于微内核操作系统的分布式流式数据处理方法及系统 |
Non-Patent Citations (1)
Title |
---|
熊体凡, 万立, 刘清华, 钟毅芳: "工作流系统中业务工具动态集成模型研究", 计算机集成制造系统-CIMS, no. 10, 25 October 2005 (2005-10-25), pages 1361 - 1366 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022257247A1 (zh) * | 2021-06-11 | 2022-12-15 | 腾讯云计算(北京)有限责任公司 | 数据处理方法、装置及计算机可读存储介质 |
CN113434323A (zh) * | 2021-06-28 | 2021-09-24 | 浙江大华技术股份有限公司 | 数据中台的任务流控制方法及相关装置 |
CN113515220A (zh) * | 2021-07-23 | 2021-10-19 | 上海商汤科技开发有限公司 | 任务处理方法及装置、电子设备和存储介质 |
CN113868574A (zh) * | 2021-09-18 | 2021-12-31 | 北京仁科互动网络技术有限公司 | 基于Saas模式的标签服务系统、方法、设备及介质 |
CN113672396A (zh) * | 2021-10-25 | 2021-11-19 | 中电云数智科技有限公司 | 一种流式计算作业处理方法以及装置 |
CN113672396B (zh) * | 2021-10-25 | 2021-12-28 | 中电云数智科技有限公司 | 一种流式计算作业处理方法以及装置 |
CN114579261A (zh) * | 2022-04-29 | 2022-06-03 | 支付宝(杭州)信息技术有限公司 | 多语言混合流的处理方法和装置 |
CN114579261B (zh) * | 2022-04-29 | 2022-09-20 | 支付宝(杭州)信息技术有限公司 | 多语言混合流的处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112000453B (zh) | 2024-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112000453A (zh) | 一种流计算系统的调度方法和系统 | |
US11449774B2 (en) | Resource configuration method and apparatus for heterogeneous cloud services | |
CN110908788B (zh) | 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质 | |
CN105117286B (zh) | MapReduce中任务的调度方法和流水化执行方法 | |
JP6525286B2 (ja) | プロセッサコア及びプロセッサシステム | |
EP3734475A1 (en) | Method and device for training data, storage medium, and electronic device | |
US11295254B2 (en) | Flexible product manufacturing planning | |
DE102018126001A1 (de) | Synchronisation in einem Multi-Kachel-Verarbeitungsarray | |
JP2020532778A (ja) | 変換方法、装置、コンピューターデバイス及び記憶媒体 | |
CN112711478B (zh) | 基于神经网络的任务处理方法、装置、服务器和存储介质 | |
US20210049453A1 (en) | Chip and chip-based data processing method | |
CN111538307B (zh) | 一种制造执行系统的工艺路线建模方法及系统 | |
US20150242483A1 (en) | Elastic execution of continuous mapreduce jobs over data streams | |
US20040268335A1 (en) | Modulo scheduling of multiple instruction chains | |
CN104317738A (zh) | 一种基于MapReduce的增量计算方法 | |
CN110599166A (zh) | 一种区块链内获取交易依赖关系的方法及装置 | |
CN114356578A (zh) | 自然语言处理模型的并行计算方法、装置、设备及介质 | |
CN108470211B (zh) | 一种卷积计算的实现方法、设备和计算机存储介质 | |
CN112925811A (zh) | 数据处理的方法、装置、设备、存储介质及程序产品 | |
CN113222099A (zh) | 卷积运算方法及芯片 | |
CN113821313A (zh) | 一种任务调度方法、装置及电子设备 | |
CN110008028B (zh) | 计算资源分配方法、装置、计算机设备和存储介质 | |
CN111176821A (zh) | 操作系统的多任务调度方法及装置 | |
CN112540730B (zh) | 可动态重构的dma阵列 | |
CN114240632A (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 |