CN105335218A - 一种基于本地的流式计算方法及流式计算系统 - Google Patents

一种基于本地的流式计算方法及流式计算系统 Download PDF

Info

Publication number
CN105335218A
CN105335218A CN201410317237.2A CN201410317237A CN105335218A CN 105335218 A CN105335218 A CN 105335218A CN 201410317237 A CN201410317237 A CN 201410317237A CN 105335218 A CN105335218 A CN 105335218A
Authority
CN
China
Prior art keywords
computing node
node
computing
task data
calculation
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
Application number
CN201410317237.2A
Other languages
English (en)
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.)
Beijing Kingsoft Internet Security Software Co Ltd
Original Assignee
Beijing Kingsoft Internet Security Software Co 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 Beijing Kingsoft Internet Security Software Co Ltd filed Critical Beijing Kingsoft Internet Security Software Co Ltd
Priority to CN201410317237.2A priority Critical patent/CN105335218A/zh
Priority to PCT/CN2015/082121 priority patent/WO2016000548A1/zh
Publication of CN105335218A publication Critical patent/CN105335218A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements

Abstract

本发明实施例公开了一种基于本地的流式计算方法及流式计算系统,包括:通过本地的上游计算节点接收任务数据;调用上游计算节点的预定义行为程序对任务数据进行计算,生成上游计算节点计算结果;发送上游计算节点计算结果至位于上游计算节点数据流向所在的下游计算节点;调用下游计算节点的预定义行为程序对上游计算节点计算结果进行计算,生成下游计算节点计算结果;继续发送下游计算节点计算结果至位于下游计算节点数据流向所在的下一下游计算节点,并调用下一下游节点的预定义行为程序对下游计算节点计算结果进行计算,直至通过未定义数据流向的计算节点输出任务数据的最终计算结果。实施本发明,能够提高计算效率。

Description

一种基于本地的流式计算方法及流式计算系统
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于本地的流式计算方法及流式计算系统。
背景技术
本地在处理多个任务数据时,通常为单机的多线程处理,每个线程同一时间均只能运行一个任务数据,并且直到当前的任务数据运行完毕才能处理下一个任务数据,故,当任务数据的计算量较大时,会长期占用该线程,以致该线程的输入队列中的其他任务数据不能被及时处理;当任务数据包含多项行为的计算时,维护人员需要为该任务数据编写包含多项行为的预定义行为程序,然而,编写的预定义行为程序中的各项行为只能适用于当前的任务数据,进行其他任务数据时,维护人员需要再编写另一个预定义行为程序,非常的耗费精力,也造成了预定义行为程序的资源浪费。
发明内容
本发明实施例提供一种基于本地的流式计算方法及流式计算系统,可将处理任务数据的多项行为分布到本地的各个计算节点,通过使各计算节点调用各节点的预定义行为程序并行、协同地处理任务数据,能够提高计算效率,避免程序资源浪费。
本发明实施例提供了一种基于本地的流式计算方法,其可包括:
通过本地的上游计算节点接收任务数据;
调用所述上游计算节点的预定义行为程序对所述任务数据进行计算,生成上游计算节点计算结果;
发送所述上游计算节点计算结果至位于所述上游计算节点数据流向所在的下游计算节点;
调用所述下游计算节点的预定义行为程序对所述上游计算节点计算结果进行计算,生成下游计算节点计算结果;
继续发送所述下游计算节点计算结果至位于所述下游计算节点数据流向所在的下一下游计算节点,并调用所述下一下游节点的预定义行为程序对所述下游计算节点计算结果进行计算,直至通过未定义数据流向的计算节点输出所述任务数据的最终计算结果。
其中,所述方法,还包括:
为所述本地中的各计算节点设置所述预定义行为程序。
其中,为所述本地中的节点设置预定义行为程序之前,通过本地的上游计算节点接收任务数据之后,还包括:
定义所述各计算节点之间的数据流向关系。
其中,所述上游计算节点接收到的为多个任务数据,调用所述上游计算节点的预定义行为程序对所述任务数据进行计算,生成上游计算节点计算结果包括:
将多个所述任务数据插入节点输入队列;
按照所述节点输入队列中所述任务数据的排列顺序分配多个所述任务数据至所述上游计算节点的计算单元;
使所述计算单元计算所述任务数据,所述上游计算节点包含至少一个所述计算单元;
将所述至少一个计算单元计算出的计算结果插入节点输出队列,形成所述上游计算节点计算结果。
其中,所述计算单元分配到的为多个任务数据,所述计算单元为多线程式计算单元,使所述计算单元计算所述任务数据包括:
为分配到所述计算单元的多个任务数据分配计算线程;
使所述计算线程对分配到的所述任务数据进行计算。
其中,所述计算线程分配到的为多个任务数据,使所述计算线程对分配到的所述任务数据进行计算包括:
将分配到所述计算线程的多个所述任务数据插入线程输入队列;
按照所述线程输入队列中所述任务数据的排列顺序对所述任务数据进行计算,生成所述计算结果。
其中,所述上游计算节点包含指定数目的所述计算单元。
其中,所述计算单元包含指定数目的所述计算线程。
其中,所述各计算节点的所述预定义行为程序是从应用程序编程接口API输入的。
其中,所述各计算节点之间的数据流向关系是根据配置文件定义的。
本发明实施例还提供了一种流式计算系统,其可包括:
上游计算节点,位于本地,用于接收任务数据;
所述上游计算节点,还用于调用所述上游计算节点的预定义行为程序对所述任务数据进行计算,生成上游计算节点计算结果;
所述上游计算节点,还用于发送所述上游计算节点计算结果至位于所述上游计算节点数据流向所在的下游计算节点;
下游计算节点,为所述上游计算节点的数据流向所在,用于接收所述上游计算节点发送的所述上游计算节点计算结果;
所述下游计算节点,还用于调用所述下游计算节点的预定义行为程序对所述上游计算节点计算结果进行计算,生成下游计算节点计算结果;
所述下游计算节点,还用于继续发送所述下游计算节点计算结果至位于所述下游计算节点数据流向所在的下一下游计算节点,使所述下一下游节点调用所述下一下游节点的预定义行为程序对所述下游计算节点计算结果进行计算,直至通过未定义数据流向的计算节点输出所述任务数据的最终计算结果。
其中,所述流式计算系统,还包括:
计算节点管理器,用于为所述本地中的各计算节点设置所述预定义行为程序。
其中,所述计算节点管理器,还用于定义所述各计算节点之间的数据流向关系。
其中,所述上游计算节点接收到的为多个任务数据,
所述上游计算节点,还用于将多个所述任务数据插入节点输入队列;
所述上游计算节点,还用于按照所述节点输入队列中所述任务数据的排列顺序分配多个所述任务数据至所述上游计算节点的计算单元;
所述上游计算节点包括:
计算单元,用于计算所述任务数据,所述上游计算节点包含至少一个所述计算单元;
所述计算单元,还用于将所述至少一个计算单元计算出的计算结果插入节点输出队列,形成所述上游计算节点计算结果。
其中,所述计算单元分配到的为多个任务数据,所述计算单元为多线程式计算单元,
所述计算单元,还用于为分配到所述计算单元的多个任务数据分配计算线程;
所述计算单元包括:
计算线程,用于计算所述计算单元分配到的所述任务数据。
其中,所述计算线程分配到的为多个任务数据,
所述计算线程,还用于将分配到所述计算线程的多个所述任务数据插入线程输入队列;还用于按照所述线程输入队列中所述任务数据的排列顺序对所述任务数据进行计算,生成所述计算结果。
其中,所述上游计算节点包含指定数目的所述计算单元。
其中,所述各计算单元包含指定数目的所述计算线程。
其中,所述各计算节点的所述预定义行为程序是从应用程序编程接口API输入的。
其中,所述选定的计算节点之间的数据流向关系是根据配置文件定义的。
在本发明实施例中,系统可将处理任务数据的多项行为分布到本地的各个计算节点,通过使各计算节点调用各节点的预定义行为程序并行、协同地处理任务数据,能够提高计算效率,避免程序资源浪费,实现轻量化计算。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的基于本地的流式计算方法的实施例流程示意图;
图2是本发明实施例提供的流式计算系统的实施例结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
流式计算通常应用于集群系统,其具有分步、有向无环的计算特点,可以大量地处理集群服务器系统中的任务。为了解决背景技术问题,本发明实施例将流式计算的特点引入了本地的任务数据处理中,以提高任务数据的处理效率。
参见图1,是本发明实施例提供的基于本地的流式计算方法的实施例流程示意图。本实施例中所描述的流式计算方法,包括步骤:
步骤S110,通过本地的上游计算节点接收任务数据。
步骤S111,调用上游计算节点的预定义行为程序对任务数据进行计算,生成上游计算节点计算结果;
步骤S112,发送上游计算节点计算结果至位于上游计算节点数据流向所在的下游计算节点;
步骤S113,调用下游计算节点的预定义行为程序对上游计算节点计算结果进行计算,生成下游计算节点计算结果;
步骤S114,继续发送下游计算节点计算结果至位于下游计算节点数据流向所在的下一下游计算节点,并调用下一下游节点的预定义行为程序对下游计算节点计算结果进行计算,直至通过未定义数据流向的计算节点输出任务数据的最终计算结果。
具体实现中,本发明实施例可实施于一种流式计算系统,该系统可以包括上游计算节点以及下游计算节点,系统为各计算节点设置预定义行为程序,用于处理任务数据中相应的部分。那么相应地,在一些可行的实施方式中,通过本地的上游计算节点接收任务数据之前,本发明实施例还可以实施以下步骤:
为本地中的各计算节点设置预定义行为程序。其中,各计算节点设置预定义行为程序可以是从系统的应用程序编程接口API输入的,节点的预定义行为程序也可以根据实际情况修改。
在一些可行的实施方式中,为本地中的各计算节点设置预定义行为程序之前,通过本地的上游计算节点接收任务数据之后,本发明实施例还可以实施以下步骤:
定义各计算节点之间的数据流向关系。
其中,定义计算节点之间的数据流向可以由系统中的计算节点管理器来实施,可将任务数据按照任务的行为内容来划分,通过指定的计算节点处理对应的行为,并且通过定义好节点数据流向的多个计算节点所组成的数据流扑拓关系来控制数据的计算过程,可以实现将任务数据进行并行计算,通过多个计算节点之间的配合,可提高任务数据的处理效率。另外,定义节点数据流向可以依据配置文件。
在一些可行的实施方式中,上游计算节点接收到的为多个任务数据,调用上游计算节点的预定义行为程序对任务数据进行计算,生成上游计算节点计算结果的具体实施可以包括:
将多个任务数据插入节点输入队列;
按照节点输入队列中任务数据的排列顺序分配多个任务数据至上游计算节点的计算单元;
使计算单元计算分配到的任务数据,其中,上游计算节点包含至少一个计算单元;
将至少一个计算单元计算出的计算结果插入节点输出队列,形成上游计算节点计算结果。
其中,本发明实施例中,无论是上游计算节点还是下游计算节点以及其他计算节点均包含多个计算单元,也可以是指定数目个计算单元,每个计算单元均可以包含多个线程,也可以是指定数目的计算线程,用来快速地计算各计算节点接收的任务数据:
为分配到计算单元的多个任务数据分配计算线程;
使计算线程处理分配到的任务数据。
在一些可行的实施方式中,计算线程处理任务数据则是通过将任务数据插入队列后,从队列前端抽取任务数据并处理,并将处理后的结果输出到输出队列:
将分配到计算线程的多个任务数据插入线程输入队列;
按照线程输入队列中任务数据的排列顺序处理数据,生成计算结果并输出到线程输出队列。
在一些可行的实施方式中,各计算节点、节点单元以及线程的输入队列大小都是预设的,以控制数据流。
在一些可行的实施方式中,请一并参照以下程序,本发明实施例的任务数据的流向可以如以下程序所示:
[node](node表示一个计算节点的标识符)
node_name:node_a(计算节点的名字,下同)
input_queue_size:100(计算节点输入队列的大小,用于流量控制)
task_class:task_a(计算单元中的计算任务)
downstream:node_b,node_c(下游计算节点的名字)
[node]
node_name:node_b
input_queue_size:50
task_class:task_b
downstream:node_c
[node]
module_name:node_c
input_queue_size:10
task_class:task_c
downstream:null#表示不存在下游
上述程序中,节点A作为上游计算节点,它的数据流向所在的下游计算节点有节点B和节点C,并且,节点B的作为上游计算节点时,节点B的数据流向所在的下游计算节点为节点C,另外,节点C在本程序中作为终止节点,规定其不存在下游数据流向。
在一些可行的实施方式中,系统还可以包括读代理、写代理,当计算节点接收大量任务数据后,计算节点将大量的任务数据插入计算节点输入队列,并通过节点的读代理读取计算节点输入队列中的任务数据,分配任务数据至计算单元,当计算单元通过其中的计算线程对任务数据进行处理后,将计算结果输出至内部的输出队列,再通过写代理读取内部的输出队列中的数据,并写入计算节点的输出队列,即下一个计算节点的输入队列。
在一些可行的实施方式中,计算节点管理器用于管理节点,在处理任务数据之前,计算节点管理器要执行初始化,使每个计算节点及计算节点之间的拓扑关系初始化完成:
首先,完成节点的读代理初始化;
其次,完成节点的计算单元组初始化,其中,也包含了每个计算单元的初始化。每个计算单元初始化会启动任务数据。
再次,完成节点的写代理初始化(可选,当计算节点中的任务数据处理后无需输出时,计算节点的输出队列可置为null,写代理组件则不需要)。
在本发明实施例中,为各节点定义了处理任务数据的行为程序,并配置了各节点的输入队列大小以及节点之间的上下游关系,从而将处理任务数据的多项行为分配到本地的各个计算节点,使各计算节点调用各节点的预定义行为程序并行、协同地处理任务数据,提高了计算效率,避免了程序资源浪费,实现了轻量化计算。
参见图2,是本发明实施例提供的流式计算系统的实施例结构示意图。本实施例中所描述的流式计算系统,包括:
上游计算节点21,位于本地,用于接收任务数据;还用于调用上游计算节点的预定义行为程序对任务数据进行计算,生成上游计算节点计算结果;还用于发送上游计算节点计算结果至位于上游计算节点数据流向所在的下游计算节点;
下游计算节点22,为上游计算节点的数据流向所在,用于接收上游计算节点发送的上游计算节点计算结果;还用于调用下游计算节点的预定义行为程序对上游计算节点计算结果进行计算,生成下游计算节点计算结果;还用于继续发送下游计算节点计算结果至位于下游计算节点数据流向所在的下一下游计算节点,使下一下游节点调用下一下游节点的预定义行为程序对下游计算节点计算结果进行计算,直至通过未定义数据流向的计算节点输出任务数据的最终计算结果。
具体实现中,本发明实施例的系统选取了本地多个节点来计算任务数据,每个节点均配置有预定义行为程序,用于处理任务数据。
在一些可行的实施方式中,本发明实施例的系统还可以包括:
计算节点管理器23,用于为本地中的各计算节点设置预定义行为程序。其中,各节点设置预定义行为程序可以是从系统的应用程序编程接口API输入的,节点的预定义行为程序也可以根据实际情况修改。
在一些可行的实施方式中,计算节点管理器23,还用于定义各计算节点之间的数据流向关系。其中,定义计算节点之间的数据流向可以由系统中的计算节点管理器23来实施,可将任务数据按照任务的行为内容来划分,通过指定的计算节点处理对应的行为,并且通过定义好节点数据流向的多个计算节点所组成的数据流扑拓关系来控制数据的计算过程,可以实现将任务数据进行并行计算,通过多个计算节点之间的配合,可提高任务数据的处理效率。另外,定义节点数据流向可以依据配置文件。
在一些可行的实施方式中,上游计算节点接收到的为多个任务数据时,上游计算节点21,还用于将多个任务数据插入节点输入队列;还用于按照节点输入队列中任务数据的排列顺序分配多个任务数据至上游计算节点的计算单元24;
上游计算节点21可以进一步包括:
计算单元24,用于计算任务数据,上游计算节点包含至少一个计算单元;计算单元24,还用于将至少一个计算单元计算出的计算结果插入节点输出队列,形成上游计算节点计算结果。
其中,本发明实施例中,无论是上游计算节点21还是下游计算节点22以及其他计算节点均包含多个计算单元24,也可以是指定数目个计算单元24,每个计算单元24均可以包含多个计算线程25,也可以是指定数目的计算线程25,用来快速地计算各计算节点接收的任务数据:
计算单元,还用于为分配到计算单元的为多个任务数据分配计算线程;
计算线程25,用于处理计算单元分配的任务数据。
在一些可行的实施方式中,计算线程25处理任务数据则是通过将任务数据插入队列后,从队列前端抽取任务数据并处理,并将处理后的结果输出到输出队列:
计算线程25,还用于将分配到计算线程的多个任务数据插入线程输入队列;还用于按照线程输入队列中任务数据的排列顺序处理数据,生成计算结果并输出到线程输出队列。
在一些可行的实施方式中,系统中各节点、节点单元以及线程的输入队列大小都是预设的,以控制数据流。
在一些可行的实施方式中,请一并参照以下程序,本发明实施例的系统中,任务数据的流向可以如以下程序所示:
[node](node表示一个计算节点的标识符)
node_name:node_a(计算节点的名字,下同)
input_queue_size:100(计算节点输入队列的大小,用于流量控制)
task_class:task_a(计算单元中的计算任务)
downstream:node_b,node_c(下游计算节点的名字)
[node]
node_name:node_b
input_queue_size:50
task_class:task_b
downstream:node_c
[node]
module_name:node_c
input_queue_size:10
task_class:task_c
downstream:null#表示不存在下游
上述程序中,系统中的节点A作为上游计算节点,它的数据流向所在的下游计算节点有节点B和节点C,并且,节点B的作为上游计算节点时,节点B的数据流向所在的下游计算节点为节点C,另外,节点C在本程序中作为终止节点,规定其不存在下游数据流向。
在一些可行的实施方式中,系统还可以包括读代理、写代理,当计算节点接收大量任务数据后,计算节点将大量的任务数据插入计算节点输入队列,并通过计算节点的读代理读取计算节点输入队列中的任务数据,分配任务数据至计算单元,当计算单元通过其中的计算线程处理任务数据后,将计算结果输出至内部的输出队列,再通过写代理读取内部的输出队列中的数据,并写入计算节点的输出队列,即下一个计算节点的输入队列。
在一些可行的实施方式中,计算节点管理器用于管理节点,在处理任务数据之前,计算节点管理器要执行初始化,使每个计算节点及计算节点之间的拓扑关系初始化完成:
首先,完成节点的读代理初始化;
其次,完成节点的计算单元组初始化,其中,也包含了每个计算单元的初始化。每个计算单元初始化会启动任务数据。
再次,完成节点的写代理初始化(可选,当计算节点中的任务数据处理后无需输出时,计算节点的输出队列可置为null,写代理组件则不需要)。
在本发明实施例中,为各节点定义了处理任务数据的行为程序,并配置了各节点的输入队列大小以及节点之间的上下游关系,从而将处理任务数据的多项行为分配到本地的各个计算节点,使各计算节点调用各节点的预定义行为程序并行、协同地处理任务数据,提高了计算效率,避免了程序资源浪费,实现了轻量化计算。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (20)

1.一种基于本地的流式计算方法,其特征在于,包括:
通过本地的上游计算节点接收任务数据;
调用所述上游计算节点的预定义行为程序对所述任务数据进行计算,生成上游计算节点计算结果;
发送所述上游计算节点计算结果至位于所述上游计算节点数据流向所在的下游计算节点;
调用所述下游计算节点的预定义行为程序对所述上游计算节点计算结果进行计算,生成下游计算节点计算结果;
继续发送所述下游计算节点计算结果至位于所述下游计算节点数据流向所在的下一下游计算节点,并调用所述下一下游节点的预定义行为程序对所述下游计算节点计算结果进行计算,直至通过未定义数据流向的计算节点输出所述任务数据的最终计算结果。
2.如权利要求1所述的方法,其特征在于,通过本地的上游计算节点接收任务数据之前,还包括:
为所述本地中的各计算节点设置所述预定义行为程序。
3.如权利要求2所述的方法,其特征在于,为所述本地中的节点设置预定义行为程序之前,通过本地的上游计算节点接收任务数据之后,还包括:
定义所述各计算节点之间的数据流向关系。
4.如权利要求1所述的方法,其特征在于,所述上游计算节点接收到的为多个任务数据,调用所述上游计算节点的预定义行为程序对所述任务数据进行计算,生成上游计算节点计算结果包括:
将多个所述任务数据插入节点输入队列;
按照所述节点输入队列中所述任务数据的排列顺序分配多个所述任务数据至所述上游计算节点的计算单元;
使所述计算单元计算所述任务数据,所述上游计算节点包含至少一个所述计算单元;
将所述至少一个计算单元计算出的计算结果插入节点输出队列,形成所述上游计算节点计算结果。
5.如权利要求4所述的方法,其特征在于,所述计算单元分配到的为多个任务数据,所述计算单元为多线程式计算单元,使所述计算单元计算所述任务数据包括:
为分配到所述计算单元的多个任务数据分配计算线程;
使所述计算线程对分配到的所述任务数据进行计算。
6.如权利要求5所述的方法,其特征在于,所述计算线程分配到的为多个任务数据,使所述计算线程对分配到的所述任务数据进行计算包括:
将分配到所述计算线程的多个所述任务数据插入线程输入队列;
按照所述线程输入队列中所述任务数据的排列顺序对所述任务数据进行计算,生成所述计算结果。
7.如权利要求4所述的方法,其特征在于,所述上游计算节点包含指定数目的所述计算单元。
8.如权利要求5所述的方法,其特征在于,所述计算单元包含指定数目的所述计算线程。
9.如权利要求2所述的方法,其特征在于,所述各计算节点的所述预定义行为程序是从应用程序编程接口API输入的。
10.如权利要求3所述的方法,其特征在于,所述各计算节点之间的数据流向关系是根据配置文件定义的。
11.一种流式计算系统,其特征在于,包括:
上游计算节点,位于本地,用于接收任务数据;
所述上游计算节点,还用于调用所述上游计算节点的预定义行为程序对所述任务数据进行计算,生成上游计算节点计算结果;
所述上游计算节点,还用于发送所述上游计算节点计算结果至位于所述上游计算节点数据流向所在的下游计算节点;
下游计算节点,为所述上游计算节点的数据流向所在,用于接收所述上游计算节点发送的所述上游计算节点计算结果;
所述下游计算节点,还用于调用所述下游计算节点的预定义行为程序对所述上游计算节点计算结果进行计算,生成下游计算节点计算结果;
所述下游计算节点,还用于继续发送所述下游计算节点计算结果至位于所述下游计算节点数据流向所在的下一下游计算节点,使所述下一下游节点调用所述下一下游节点的预定义行为程序对所述下游计算节点计算结果进行计算,直至通过未定义数据流向的计算节点输出所述任务数据的最终计算结果。
12.如权利要求11所述的流式计算系统,其特征在于,还包括:
计算节点管理器,用于为所述本地中的各计算节点设置所述预定义行为程序。
13.如权利要求12所述的流式计算系统,其特征在于,
所述计算节点管理器,还用于定义所述各计算节点之间的数据流向关系。
14.如权利要求11所述的流式计算系统,其特征在于,所述上游计算节点接收到的为多个任务数据,
所述上游计算节点,还用于将多个所述任务数据插入节点输入队列;
所述上游计算节点,还用于按照所述节点输入队列中所述任务数据的排列顺序分配多个所述任务数据至所述上游计算节点的计算单元;
所述上游计算节点包括:
计算单元,用于计算所述任务数据,所述上游计算节点包含至少一个所述计算单元;
所述计算单元,还用于将所述至少一个计算单元计算出的计算结果插入节点输出队列,形成所述上游计算节点计算结果。
15.如权利要求14所述的流式计算系统,其特征在于,所述计算单元分配到的为多个任务数据,所述计算单元为多线程式计算单元,
所述计算单元,还用于为分配到所述计算单元的多个任务数据分配计算线程;
所述计算单元包括:
计算线程,用于计算所述计算单元分配到的所述任务数据。
16.如权利要求15所述的流式计算系统,其特征在于,所述计算线程分配到的为多个任务数据,
所述计算线程,还用于将分配到所述计算线程的多个所述任务数据插入线程输入队列;还用于按照所述线程输入队列中所述任务数据的排列顺序对所述任务数据进行计算,生成所述计算结果。
17.如权利要求14所述的流式计算系统,其特征在于,所述上游计算节点包含指定数目的所述计算单元。
18.如权利要求15所述的流式计算系统,其特征在于,所述计算单元包含指定数目的所述计算线程。
19.如权利要求12所述的流式计算系统,其特征在于,所述各计算节点的所述预定义行为程序是从应用程序编程接口API输入的。
20.如权利要求13所述的流式计算系统,其特征在于,所述各计算节点之间的数据流向关系是根据配置文件定义的。
CN201410317237.2A 2014-07-03 2014-07-03 一种基于本地的流式计算方法及流式计算系统 Pending CN105335218A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410317237.2A CN105335218A (zh) 2014-07-03 2014-07-03 一种基于本地的流式计算方法及流式计算系统
PCT/CN2015/082121 WO2016000548A1 (zh) 2014-07-03 2015-06-23 一种基于本地的流式计算方法及流式计算系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410317237.2A CN105335218A (zh) 2014-07-03 2014-07-03 一种基于本地的流式计算方法及流式计算系统

Publications (1)

Publication Number Publication Date
CN105335218A true CN105335218A (zh) 2016-02-17

Family

ID=55018432

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410317237.2A Pending CN105335218A (zh) 2014-07-03 2014-07-03 一种基于本地的流式计算方法及流式计算系统

Country Status (2)

Country Link
CN (1) CN105335218A (zh)
WO (1) WO2016000548A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107070976A (zh) * 2017-01-13 2017-08-18 广西电网有限责任公司电力科学研究院 一种数据传输方法
CN107305501A (zh) * 2016-04-25 2017-10-31 百度在线网络技术(北京)有限公司 一种多流流式数据的处理方法和系统
CN107391136A (zh) * 2017-07-21 2017-11-24 众安信息技术服务有限公司 一种基于流式的编程系统和方法
CN107797861A (zh) * 2016-08-31 2018-03-13 北京威锐达测控系统有限公司 数据处理方法、模块、数据处理系统及其构建方法、装置
CN108958789A (zh) * 2018-05-20 2018-12-07 湖北九州云仓科技发展有限公司 一种并行流式计算方法、电子设备、存储介质及系统
CN109284180A (zh) * 2018-08-30 2019-01-29 百度在线网络技术(北京)有限公司 一种任务调度方法、装置、电子设备及存储介质
CN109377177A (zh) * 2018-10-18 2019-02-22 东软集团股份有限公司 流程处理方法、装置、设备和计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101957777A (zh) * 2010-09-09 2011-01-26 西北工业大学 一种数据处理流程的调度方法
CN102760073A (zh) * 2011-04-29 2012-10-31 中兴通讯股份有限公司 一种任务调度方法、系统及装置
CN102904919A (zh) * 2011-07-29 2013-01-30 国际商业机器公司 流处理方法和实现流处理的分布式系统
CN103336723A (zh) * 2013-07-21 2013-10-02 哈尔滨理工大学 基于关键路径的适应处理器内核紧缺调度方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100125718A1 (en) * 2008-11-14 2010-05-20 D.E. Shaw Research, Llc Parallel analysis of time series data
US8572276B2 (en) * 2010-04-29 2013-10-29 International Business Machines Corporation Pipelining protocols in misaligned buffer cases
JP5776267B2 (ja) * 2011-03-29 2015-09-09 日本電気株式会社 分散ファイルシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101957777A (zh) * 2010-09-09 2011-01-26 西北工业大学 一种数据处理流程的调度方法
CN102760073A (zh) * 2011-04-29 2012-10-31 中兴通讯股份有限公司 一种任务调度方法、系统及装置
CN102904919A (zh) * 2011-07-29 2013-01-30 国际商业机器公司 流处理方法和实现流处理的分布式系统
CN103336723A (zh) * 2013-07-21 2013-10-02 哈尔滨理工大学 基于关键路径的适应处理器内核紧缺调度方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107305501A (zh) * 2016-04-25 2017-10-31 百度在线网络技术(北京)有限公司 一种多流流式数据的处理方法和系统
CN107305501B (zh) * 2016-04-25 2020-11-17 百度在线网络技术(北京)有限公司 一种多流流式数据的处理方法和系统
CN107797861A (zh) * 2016-08-31 2018-03-13 北京威锐达测控系统有限公司 数据处理方法、模块、数据处理系统及其构建方法、装置
CN107797861B (zh) * 2016-08-31 2021-09-03 北京威锐达测控系统有限公司 数据处理方法、模块、数据处理系统及其构建方法、装置
CN107070976A (zh) * 2017-01-13 2017-08-18 广西电网有限责任公司电力科学研究院 一种数据传输方法
CN107391136A (zh) * 2017-07-21 2017-11-24 众安信息技术服务有限公司 一种基于流式的编程系统和方法
CN107391136B (zh) * 2017-07-21 2020-11-06 众安信息技术服务有限公司 一种基于流式的编程系统和方法
CN108958789B (zh) * 2018-05-20 2021-07-09 湖北九州云仓科技发展有限公司 一种并行流式计算方法、电子设备、存储介质及系统
CN108958789A (zh) * 2018-05-20 2018-12-07 湖北九州云仓科技发展有限公司 一种并行流式计算方法、电子设备、存储介质及系统
CN109284180A (zh) * 2018-08-30 2019-01-29 百度在线网络技术(北京)有限公司 一种任务调度方法、装置、电子设备及存储介质
CN109284180B (zh) * 2018-08-30 2021-06-18 百度在线网络技术(北京)有限公司 一种任务调度方法、装置、电子设备及存储介质
CN109377177A (zh) * 2018-10-18 2019-02-22 东软集团股份有限公司 流程处理方法、装置、设备和计算机可读存储介质
CN109377177B (zh) * 2018-10-18 2020-12-01 东软集团股份有限公司 流程处理方法、装置、设备和计算机可读存储介质

Also Published As

Publication number Publication date
WO2016000548A1 (zh) 2016-01-07

Similar Documents

Publication Publication Date Title
CN105335218A (zh) 一种基于本地的流式计算方法及流式计算系统
US10613909B2 (en) Method and apparatus for generating an optimized streaming graph using an adjacency operator combination on at least one streaming subgraph
CN108846630B (zh) 一种资源控制系统及方法
CN107678790B (zh) 流计算方法、装置及系统
CN103309946B (zh) 多媒体文件处理方法、装置及系统
CN109408205B (zh) 基于hadoop集群的任务调度方法和装置
US20170346690A1 (en) Methods, systems and apparatus to improve cluster efficiency
CN104580396A (zh) 一种任务调度方法、节点及系统
WO2016036824A4 (en) Visually specifying subsets of components in graph-based programs through user interactions
CN109117141B (zh) 简化编程的方法、装置、电子设备、计算机可读存储介质
CN104572182B (zh) 一种流应用的配置方法、节点及流计算系统
US9531602B1 (en) Processing element placement tool
CN109189572B (zh) 一种资源预估方法及系统、电子设备和存储介质
CN107729138B (zh) 一种高性能分布式矢量空间数据的分析方法和装置
CN109697065A (zh) 一种嵌入式车载系统的可视化开发方法
CN103455377A (zh) 用于管理业务线程池的系统和方法
US20210397315A1 (en) Composable events for dynamic user interface composition
CN104133676A (zh) 一种基于脚本的功能执行方法和设备
CN102508717A (zh) 一种应用于多核处理器的内存调度方法及装置
CN111123728B (zh) 无人车仿真方法、装置、设备及计算机可读介质
US11610041B2 (en) Tool and method for designing and validating a data flow system by a formal model
CN114049065A (zh) 一种数据处理方法、装置及系统
CN108776618A (zh) 分布式工作流管理方法及装置
CN105653370A (zh) 在PaaS平台上实现的获取虚拟机资源的系统和方法
Jrad et al. STRATModel: Elasticity model description language for evaluating elasticity strategies for business processes

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20160217

RJ01 Rejection of invention patent application after publication