CN104683488B - 流式计算系统及其调度方法和装置 - Google Patents
流式计算系统及其调度方法和装置 Download PDFInfo
- Publication number
- CN104683488B CN104683488B CN201510150536.6A CN201510150536A CN104683488B CN 104683488 B CN104683488 B CN 104683488B CN 201510150536 A CN201510150536 A CN 201510150536A CN 104683488 B CN104683488 B CN 104683488B
- Authority
- CN
- China
- Prior art keywords
- group
- calculate node
- data center
- operator
- hypernucleus
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种流式计算系统及其调度方法和装置。流式计算系统包括:一个或多个位于不同地域的网络超核;一个或多个位于不同地域的数据中心,其中每个数据中心连接到相应的网络超核,数据中心之间经由网络超核进行通信;一个或多个计算节点,其中每个计算节点位于相应的数据中心并归入该数据中心所连接的网络超核,每个计算节点用作计算任务的有向无环图DAG模型中的一种算子。归入同一网络超核的计算节点被分为若干组,至少一个组包含DAG模型中所需的所有类型的算子,属于同一组的计算节点之间的通信优先级高于属于不同组但归入同一网络超核的计算节点之间的通信优先级,后者高于归入不同网络超核的计算节点之间的通信优先级。
Description
技术领域
本申请涉及计算机技术领域,具体涉及流式计算系统及其调度方法和装置。
背景技术
随着互联网的飞速发展,越来越多的计算任务变得越来越重型,策略逻辑逐渐发展得越来越庞大、复杂。因此,出现了将原来一个计算任务或程序按照策略逻辑拆分成多个算子,通过有向无环图(Directed Acyclic Graph,DAG)来组织其数据流向。在数学和计算机科学中,DAG是不具有有向环的有向图。换言之,DAG由顶点和有向边组成,每条边将一个顶点连接到另一个顶点,从而无法从任意顶点v出发经过若干条边最终回到该顶点v。在流式计算中,DAG模型主要由算子(operator)和流(stream)构成,其中算子(operator)是承载业务逻辑的数据处理单元,可被流式计算系统分布式调度执行的最小单元,而流(stream)则是算子间交互的数据。
近些年随着大数据的广泛应用,越来越多的计算任务变得越来越庞大。例如,百度的网页库减索引任务被分为多个算子,每个算子需要超过5G的内存,每次计算的规模达到20000以上的计算节点。在百度里,诸如图片特征计算、智能解析计算等类似这样的海量的计算任务也不算少数。
另一方面,单个互联网数据中心(Internet Data Center,IDC)的计算节点数量有限,无法满足一次计算任务的全部节点需求,因此必然需要将计算任务分布到位于不同地域的多个IDC中。
现在业界已经存在很多开源的流式计算系统能满足DAG数据流计算的需求,诸如twitter使用的Storm,Yahoo!的S4等。但是,这些系统侧重于实时性问题,也即更看重延迟。然而,DAG模型中算子之间有很多数据交互,跨地域IDC间的带宽又非常昂贵。现有的流式计算系统没有专门考虑算子的合理分布,导致跨地域IDC间的交互较多,增加了通信成本和跨地域通信的不稳定因素。
发明内容
鉴于现有技术中的上述缺陷或不足,期望提供一种能够合理的考虑计算节点按地域分布的方案,以大大减少跨地域通信所带来的增加的通信成本和不稳定因素。为了实现上述一个或多个目的,本申请提供了一种流式计算系统及其调度方法和装置。
第一方面,提供了一种流式计算系统。该流式计算系统包括:一个或多个位于不同地域的网络超核;一个或多个位于不同地域的数据中心,其中每个数据中心连接到相应的网络超核,数据中心之间经由网络超核进行通信;一个或多个计算节点,其中每个计算节点位于相应的数据中心并归入该数据中心所连接的网络超核,每个计算节点用作计算任务的有向无环图DAG模型中的一种算子。归入同一网络超核的计算节点被分为若干组,至少一个组包含DAG模型中所需的所有类型的算子,属于同一组的计算节点之间的通信优先级高于属于不同组但归入同一网络超核的计算节点之间的通信优先级,后者高于归入不同网络超核的计算节点之间的通信优先级。
第二方面,提供了一种流式计算系统的调度方法。该方法包括:根据计算节点所在的数据中心将该计算节点归入数据中心所连接的网络超核;根据归入同一网络超核的已有计算节点的算子类型分布,确定该计算节点的算子类型;以及根据同一网络超核下的计算节点分组情况,确定该计算节点归入的组;其中,属于同一组的计算节点之间的通信优先级高于属于不同组但归入同一网络超核的计算节点之间的通信优先级,后者高于归入不同网络超核的计算节点之间的通信优先级。
第三方面,提供了一种流式计算系统的调度装置。该装置包括:网络超核确定单元,配置用于根据计算节点所在的数据中心将该计算节点归入数据中心所连接的网络超核;算子类型确定单元,配置用于根据归入同一网络超核的已有计算节点的算子类型分布,确定所述计算节点的算子类型;以及分组确定单元,配置用于根据同一网络超核下的计算节点分组情况,确定所述计算节点归入的组。其中,属于同一组的计算节点之间的通信优先级高于属于不同组但归入同一网络超核的计算节点之间的通信优先级,后者高于归入不同网络超核的计算节点之间的通信优先级。
按照本申请实施例提供的流式计算系统,通过将计算节点按地域进行分组,能够大大降低通信成本和跨地域通信的不稳定因素。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出了现有技术的流式计算系统中的算子分布以及对计算任务的调度的示意图;
图2示出了按照本申请实施例的算子按地域分布以及对计算任务的调度的示意图;
图3示出了按照本申请实施例的流式计算系统的一种示意性架构图;
图4示出了按照本申请实施例的流式计算系统的一种示意性逻辑结构图;
图5示出了按照本申请实施例的流式计算系统的调度方法的一个示例性流程图;
图6示出了按照本申请实施例的流式计算系统的调度装置的示意性结构图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了现有技术的流式计算系统中的算子分布以及对计算任务的调度的示意图。如图1所示,示例性流式计算系统中包括三个互联网数据中心IDC X、IDC Y和IDC Z。每个IDC中分布有多个计算节点,这些计算节点被分配或配置成不同类型的算子。
在图1所示的示例中,假设一个计算任务的DAG模型有三种算子:算子a、算子b和算子c,数据流向是a—>b—>c。假设每种算子都有三个副本,也即每种算子都配置了三个计算节点,这些计算节点随机的分布在IDC X、IDC Y和IDC Z这三个IDC中。按照现有技术中的流式计算系统,其没有专门考虑算子分布的地域信息,因此当分配计算任务时,就会出现图1中所示的多次跨IDC(跨地域)通信的情况。如图1所示,一共有6次跨IDC通信。
如果合理的考虑节点分布,则可以大大减少跨地域通信。
图2示出了按照本申请实施例的算子按地域分布以及对计算任务的调度的示意图。图2所示的场景假设与图1相同,但是对节点分布按照本申请的实施例进行了优化,其中在分配计算任务时考虑了算子分布的地域信息。如图2所示,经过优化后,只有1次跨IDC/地域通信,从而大大降低了通信成本和跨地域通信的不稳定因素。
从图1与图2的对比可以看出,由于现有的流式计算系统在算子分配、数据流分组上都没有考虑地域因素,而是随机分配,因此会带来很多无谓的昂贵的跨地域带宽浪费,同时跨地域数据通信的可靠性也不高。而按照本申请实施例进行优化后,可以大大降低通信成本和减少跨地域通信的不稳定因素。因此,在大规模离线DAG流式计算中,节点分配策略考虑跨地域因素非常重要。
基于上述考虑,本申请提出了一种流式计算系统。在根据本申请实施例的流式计算系统中,基于计算节点的地域信息来分配相应的算子,从而在数据流分组时可以减少跨地域通信。
图3示出了按照本申请实施例的流式计算系统的一种示意性架构图。
如图3所示,流式计算系统300包括:一个或多个位于不同地域的网络超核311、312;以及一个或多个位于不同地域的数据中心IDC A-I,其中每个数据中心连接到相应的网络超核,数据中心之间经由网络超核进行通信。在图3的示例中,IDC A、IDC B、IDC C、IDCD和IDC E都与网络超核312有直接的光纤链接;IDC F、IDC G、IDC H和IDC I都与网络超核311有直接的光纤链接。网络超核311与网络超核312之间有光纤链接。一般多个IDC间相互链接是通过网络超核进行中转的,也即IDC间网络通信需要经过网络超核进行路由转发。例如,IDC A的计算节点要发送数据给IDC F的计算节点时,需要先经过网络超核312,再到网络超核311,最后到达IDC F。通常,网络超核到网络超核的带宽非常昂贵,IDC到网络超核的带宽相对便宜一些。
流式计算系统300还包括一个或多个计算节点(图中未示出),其中每个计算节点位于相应的数据中心并归入该数据中心所连接的网络超核,每个计算节点用作计算任务的有向无环图DAG模型中的一种算子。
在流式计算系统300中,归入同一网络超核的计算节点被分为若干组,至少一个组包含DAG模型中所需的所有类型的算子;并且属于同一组的计算节点之间的通信优先级高于属于不同组但归入同一网络超核的计算节点之间的通信优先级,后者高于归入不同网络超核的计算节点之间的通信优先级。
通过按网络超核或地域划分计算节点,以及对计算节点进行分组,可以产生不同层级的通信。这些不同层级的通信基于网络通信成本而被分配有不同的通信优先级,使得低成本的通信具有高优先级,高成本的通信具有低优先级,从而可以较好地控制通信成本,由此也减少跨地域通信的不稳定因素。
在一些实施例中,在流式计算系统300中,归入不同网络超核的计算节点之间禁止经由网络超核互相通信。通过禁止跨网络超核的通信,可以大幅度减少通信成本。
附加的,在进一步的实施例中,在流式计算系统300中,归入相同网络超核但属于不同组的计算节点之间禁止经由网络超核互相通信。通过按地域对计算节点进行合理分组以及限制分组之间的通信,可以进一步减少通信成本。
图4示出了按照本申请实施例的流式计算系统的一种示意性逻辑结构图。如图4所示,可以将图3中所示的IDC与网络超核之间的物理链接抽象成树形结构。
简单起见,图4中的树形结构有三层,最顶层(第0级)是增加的一个虚拟的根ROOT节点,接下来的第1级是网络超核层,包括网络超核S1和S2,第2级叶子节点是与这个网络超核链接的IDC。在图4的示例中,与网络超核S1链接的IDC包括IDC F、IDC G、IDC H和IDC I;与网络超核S2链接的IDC包括IDC A、IDC B、IDC C、IDC D和IDC E。
一般而言,IDC之间的网络拓扑都可以抽象成图4所示的三层树形结构,并且满足如下假设:
(1)第1级(网络超核)之间的网络通信成本非常昂贵;并且
(2)第2级(IDC)到网络超核的通信成本相对比较低廉。
如背景技术中所提到的,目前需要解决超大规模、海量数据计算任务,即一个计算任务所需的计算节点总数上万,无法在一个IDC中得到满足或非常难满足。由于海量计算任务所需的节点数非常大,一个IDC无法满足,因此可以认为:如果分配合理,在一个网络超核下(可能是多个IDC中)能获得足够多的计算节点以满足一个DAG模型的全部算子需求。
例如,假设DAG拓扑模型如图1描述那样,只有三种算子a、b和c,因此满足一个DAG的最小计算节点需求是3个。由于面对的是海量计算任务,需要上万计算节点,因此在图3中,从网络超核311的IDC(F、G、H、I)中,很容易满足至少有算子a、b、c各1个,且网络超核312的IDC(A、B、C、D、E)中,也至少有算子a、b、c各1个。
针对海量数据计算任务的上述特点,在根据本申请实施例的流式计算系统中,可以实现按地域对计算节点进行归类和分组,以减少跨地域通信带来的成本和不稳定因素。
当一个计算节点上线后,可以首先根据这个节点所在的IDC信息将这个节点归入“第1级”抽象网络拓扑中。例如:IDC A中一个节点node0001.a.baidu.com上线,因此将node0001.a.baidu.com归到网络超核S2中。
在一些实施例中,被归到不同“第1级”网络拓扑的计算节点之间绝对不通过网络超核互通。
进一步的,还可以将归到相同“第1级”网络拓扑的计算节点分成很多组(Group),且保证至少一个组中含有DAG拓扑模型所需的所有类型的算子。例如:DAG拓扑模型为a—>b—>c。假设有算子a、b、c各5000个,则可以每300个算子分为一组,即group_0{a:100,b:100,c:100},group_1{a:100,b:100,c:100},…
在一些实施例中,同一个组里的算子只和自己组里的其他算子通信,不会跨组通信。例如:group_0中的算子a只会发数据给group_0中的算子b,不会将数据发给其他组的算子b。
如果一个组中某种算子1个实例都没有,那么对于这个算子来说,这个组是一个“空组”(empty group)。换言之,空组是指未包含计算任务的DAG模型中所需的所有类型的算子的组。
如前面所提到的,由于海量数据计算任务需要的计算节点数量非常庞大(上万),因此空组的情况比较少。而且,计算节点的分组是个动态过程(参见下文描述),在分组的过程中可以尽量避免空组的情况出现。这样,就可以基本上保证每个组中都含有DAG模型所需的所有类型的算子,由此即可以将计算任务分布在同一个组中,而无需出现跨地域通信。
图5示出了按照本申请实施例的流式计算系统的调度方法的一个示例性流程图。更具体而言,图5示出了按照本申请实施例的流式计算系统中的节点分配策略。
在步骤510中,当一个计算节点上线后,根据计算节点所在的数据中心IDC将该计算节点归入IDC所连接的网络超核。换言之,首先根据通信成本最贵的网络超核来选择计算节点所属的地域。
接着,在步骤520中,根据归入同一网络超核的已有计算节点的算子类型分布,确定该计算节点的算子类型。
与现有的流式计算系统(例如Storm,S4等)不同,按照本申请实施例的流式计算系统是等一个节点上线后再决定这个节点是哪种类型的算子。因此,当一个节点上线后,要给它选择角色,也即哪种算子。
在一些实现中,选择角色的策略包括:首先确定是否存在空组。如前面所提到,为了支持不跨组通信,应尽量避免出现空组。若存在空组,则可以确定计算节点的算子类型为空组中缺少的算子类型。当空组中缺少多种算子类型时,可以任意选择所缺的算子类型作为该新上线的计算节点的角色。若不存在空组,则可以根据各组中不同类型的算子数量比例,确定该计算节点的算子类型为比例最低的算子类型。
例如,仍然以图1的DAG模型为例。假设各组中算子数量比例为:a:b:c=100:90:50,可以看出算子c的比例最小。此时,新上线的计算节点可以作为算子c,以拉平比例。
确定计算节点的算子类型的伪代码例如可以是:
然后,在步骤530中,根据同一网络超核下的计算节点分组情况,确定该计算节点归入的组。
在一些实现中,确定计算节点归入的组可以包括:首先确定是否存在空组。与前面类似,为了支持不跨组通信,应尽量避免出现空组。若存在空组,则将新上线的计算节点归入空组中。若不存在空组,则根据各组中计算节点的数量,将新上线的计算节点归入数量最少的组。
确定计算节点要归入的组的伪代码例如可以是:
通过上述步骤510-530,可以基于地域信息对计算节点逐一进行分配,包括分配算子类型,确定要划入的组。按照上述计算节点分配策略,尽可能保证每个组中都含有DAG拓扑模型所需的所有类型的算子,避免产生空组,这在海量数据计算任务中是很容易满足的。由于一个组内的所有计算节点都是归入同一网络超核的,因此通过禁止组间的算子通信,也即禁止跨组通信,可以限制网络超核之间的通信,从而有效降低通信成本和风险。
在分配计算节点时,可以采取一些分组方式来避免产生空组。在一些实施例中,在刚开始配置流式计算系统中的计算节点时,可以将归入同一网络超核的所有计算节点分入同一组,或者说,先不进行分组,这样就很容易满足非空组条件,也即该组内含有DAG拓扑模型所需的所有类型的算子。等到组内的计算节点多至一定程度时,才由一个组分为两个组,并且保证划分得到的两个组都是非空组。这一点对于海量数据计算任务而言也是很容易满足的。
继续图5,可选的或附加的,在步骤540中,根据每个组内计算节点的数据中心分布,调整组内的计算节点,以使得位于同一数据中心的计算节点集中分入同一组。
由于在前面的分组中没有考虑计算节点所在的IDC,因此,虽然分组满足非空组条件,但是可能出现一个组内的计算节点来自多个不同的IDC的情况。这种情况下,尽管限制只能组内的计算节点相互通信,但是由于这些计算节点位于不同的IDC,因此IDC之间需要经由网络超核来通信。此时,可以通过步骤540来调整组内的计算节点,使得位于同一IDC的计算节点集中或优先分入同一组,从而减少跨IDC的通信,进一步降低通信成本和风险。
在一些实施例中,调整组内的计算节点可以包括:确定每个组的主数据中心,组的主数据中心是指该组内大部分计算节点所位于的数据中心;以及将组内不位于主数据中心的计算节点调整至其他组。
在一些实现中,确定每个组的主数据中心可以包括:确定每个组内每种类型的算子的主数据中心及对应的计算节点数量,算子的主数据中心是指该组内具有该算子类型的大部分计算节点所位于的数据中心;以及将对应的计算节点数量最大的算子的主数据中心确定为该组的主数据中心。
从各个组中选出每种类型的算子的主数据中心的伪代码例如可以是:
说明:其中0..n是group下标,0..m是PE下标.PE是处理单元,也即算子。
例如,仍然以图1中的DAG拓扑模型为例。假设在组1中,a算子有100个实例,其中60个位于IDC A中,20个位于IDC B中,20个位于IDC C中;b算子也有100个实例,其中20个位于IDC A中,70个位于IDC B中,10个位于IDC C中;c算子也有100个实例,其中20个位于IDC A中,30个位于IDC B中,50个位于IDC C中,则在这个组中,a算子的主数据中心为IDC A,也即a算子的地域为IDC A;b算子的主数据中心为IDC B,也即b算子的地域为IDC B;c算子的主数据中心为IDC C,也即c算子的地域为IDC C。
继而可以从每种算子的主数据中心中选出该组的主数据中心,也即对应的计算节点数量最大的算子的主数据中心,这个就表示一个组的主要地域。
例如,继续上面的例子,a算子的主数据中心对应的计算节点数量为60,b算子的主数据中心对应的计算节点数量为70,c算子的主数据中心对应的计算节点数量为50,则将b算子的主数据中心IDC B选择作为该组的主数据中心。
在一些实现中,将组内不位于主数据中心的计算节点调整至其他组可以包括:对于组i内不位于主数据中心Mi的计算节点PE[si],将该计算节点PE[si]与另一组j内不位于其主数据中心Mj但位于主数据中心Mi的计算节点PE[sj]相互交换。换言之,将非主数据中心的计算节点与其他组里非主数据中心的计算节点相互交换。
组间相互交换计算节点的伪代码例如可以是:
通过图5所示的方法对流式计算系统中的计算节点进行分配调度,使得可以在一个组内包含计算任务的DAG模型所需的所有类型的算子,从而可以将计算任务完全分配在一个组内,无需组间的相互通信,以降低通信成本和通信风险。进一步的,通过步骤504所示的后延式调整,可以将一个组内的计算节点集中在一个或几个IDC上,从而进一步减少跨地域、跨IDC的带宽使用,充分节约昂贵的带宽成本并提高通信的可靠性。
应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
进一步参考图6,其示出了按照本申请实施例的流式计算系统的调度装置的示意性结构图。
如图6所示,调度装置600可以包括网络超核确定单元610、算子类型确定单元620和分组确定单元630。
网络超核确定单元610配置用于根据计算节点所在的数据中心将该计算节点归入数据中心所连接的网络超核。
算子类型确定单元620配置用于根据归入同一网络超核的已有计算节点的算子类型分布,确定该计算节点的算子类型。具体的,算子类型确定单元620可以配置用于按如下确定计算节点的算子类型:确定是否存在空组,其中空组是指未包含计算任务的有向无环图DAG模型中所需的所有类型的算子的组;若存在空组,则确定计算节点的算子类型为所述空组中缺少的算子类型;以及若不存在空组,则根据各组中不同类型的算子数量比例,确定计算节点的算子类型为比例最低的算子类型。
分组确定单元630配置用于根据同一网络超核下的计算节点分组情况,确定该计算节点归入的组。具体的,分组确定单元630可以配置用于按如下确定计算节点归入的组:确定是否存在空组,其中空组是指未包含计算任务的有向无环图DAG模型中所需的所有类型的算子的组;若存在空组,则将计算节点归入所述空组;以及若不存在空组,则根据各组中计算节点的数量,将计算节点归入数量最少的组。
在本申请实施例的流式计算系统中,属于同一组的计算节点之间的通信优先级高于属于不同组但归入同一网络超核的计算节点之间的通信优先级,后者高于归入不同网络超核的计算节点之间的通信优先级。
在一些实施例中,调度装置600还可以包括调整单元640。调整单元640可以配置用于根据每个组内计算节点的数据中心分布,调整组内的计算节点,以使得位于同一数据中心的计算节点优先或集中分入同一组。
在一些实现中,调整单元640可以包括:主数据中心确定单元,配置用于确定每个组的主数据中心,其中组的主数据中心是指该组内大部分计算节点所位于的数据中心;以及节点调整单元,配置用于将组内不位于主数据中心的计算节点调整至其他组。
具体的,主数据中心确定单元可以配置用于按如下确定每个组的主数据中心:确定每个组内每种类型的算子的主数据中心及对应的计算节点数量,其中算子的主数据中心是指该组内具有该算子类型的大部分计算节点所位于的数据中心;以及将对应的计算节点数量最大的算子的主数据中心确定为该组的主数据中心。
节点调整单元可以配置用于按如下调整计算节点:对于组i内不位于主数据中心Mi的计算节点PE[si],将该计算节点PE[si]与另一组j内不位于其主数据中心Mj但位于主数据中心Mi的计算节点PE[sj]相互交换。
在一些实施例中,调度装置600还可以包括任务分配单元650。根据本申请的算子分配策略,流式计算系统中至少存在一个组包含计算任务的有向无环图DAG模型中所需的所有类型的算子。因此,任务分配单元650可以配置用于将计算任务分配给包含有DAG模型中所需的所有类型的算子的组。换言之,可以将计算任务完全分配给一个非空组来完成,而无需跨组通信。
应当理解,装置600中记载的诸单元或模块与参考图5描述的方法中的各个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于装置600及其中包含的单元,在此不再赘述。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本申请的公式输入方法。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (19)
1.一种流式计算系统,包括:
一个或多个位于不同地域的网络超核;
一个或多个位于不同地域的数据中心,其中每个数据中心连接到相应的网络超核,数据中心之间经由网络超核进行通信;以及
一个或多个计算节点,其中每个计算节点位于相应的数据中心并归入该数据中心所连接的网络超核,每个计算节点用作计算任务的有向无环图DAG模型中的一种算子;
其中,归入同一网络超核的计算节点被分为若干组,至少一个组包含所述DAG模型中所需的所有类型的算子;并且
属于同一组的计算节点之间的通信优先级高于属于不同组但归入同一网络超核的计算节点之间的通信优先级,后者高于归入不同网络超核的计算节点之间的通信优先级。
2.根据权利要求1所述的流式计算系统,其中,归入不同网络超核的计算节点之间禁止经由网络超核互相通信。
3.根据权利要求2所述的流式计算系统,其中,归入相同网络超核但属于不同组的计算节点之间禁止经由网络超核互相通信。
4.一种用于流式计算系统的调度方法,其特征在于,所述方法包括:
根据计算节点所在的数据中心将该计算节点归入数据中心所连接的网络超核;
根据归入同一网络超核的已有计算节点的算子类型分布,确定所述计算节点的算子类型;以及
根据同一网络超核下的计算节点分组情况,确定所述计算节点归入的组;
其中,属于同一组的计算节点之间的通信优先级高于属于不同组但归入同一网络超核的计算节点之间的通信优先级,后者高于归入不同网络超核的计算节点之间的通信优先级。
5.根据权利要求4所述的方法,其中,确定所述计算节点的算子类型包括:
确定是否存在空组,其中空组是指未包含计算任务的有向无环图DAG模型中所需的所有类型的算子的组;
若存在空组,则确定所述计算节点的算子类型为所述空组中缺少的算子类型;以及
若不存在空组,则根据各组中不同类型的算子数量比例,确定所述计算节点的算子类型为比例最低的算子类型。
6.根据权利要求4所述的方法,其中,确定所述计算节点归入的组包括:
确定是否存在空组,其中空组是指未包含计算任务的有向无环图DAG模型中所需的所有类型的算子的组;
若存在空组,则将所述计算节点归入所述空组;以及
若不存在空组,则根据各组中计算节点的数量,将所述计算节点归入数量最少的组。
7.根据权利要求4所述的方法,其中,所述方法还包括:
根据每个组内计算节点的数据中心分布,调整组内的计算节点,以使得位于同一数据中心的计算节点集中分入同一组。
8.根据权利要求7所述的方法,其中调整组内的计算节点包括:
确定每个组的主数据中心,所述组的主数据中心是指所述组内大部分计算节点所位于的数据中心;以及
将组内不位于主数据中心的计算节点调整至其他组。
9.根据权利要求8所述的方法,其中确定每个组的主数据中心包括:
确定每个组内每种类型的算子的主数据中心及对应的计算节点数量,所述算子的主数据中心是指所述组内具有该算子类型的大部分计算节点所位于的数据中心;以及
将对应的计算节点数量最大的算子的主数据中心确定为所述组的主数据中心。
10.根据权利要求8所述的方法,其中将组内不位于主数据中心的计算节点调整至其他组包括:
对于组i内不位于主数据中心Mi的计算节点PE[si],将该计算节点PE[si]与另一组j内不位于其主数据中心Mj但位于主数据中心Mi的计算节点PE[sj]相互交换。
11.根据权利要求4-10任一所述的方法,其中所述流式计算系统至少存在一个组包含计算任务的有向无环图DAG模型中所需的所有类型的算子,并且所述方法还包括:
将计算任务分配给包含有DAG模型中所需的所有类型的算子的组。
12.一种用于流式计算系统的调度装置,其特征在于,所述装置包括:
网络超核确定单元,配置用于根据计算节点所在的数据中心将该计算节点归入数据中心所连接的网络超核;
算子类型确定单元,配置用于根据归入同一网络超核的已有计算节点的算子类型分布,确定所述计算节点的算子类型;以及
分组确定单元,配置用于根据同一网络超核下的计算节点分组情况,确定所述计算节点归入的组;
其中,属于同一组的计算节点之间的通信优先级高于属于不同组但归入同一网络超核的计算节点之间的通信优先级,后者高于归入不同网络超核的计算节点之间的通信优先级。
13.根据权利要求12所述的装置,其中,所述算子类型确定单元配置用于按如下确定所述计算节点的算子类型:
确定是否存在空组,其中空组是指未包含计算任务的有向无环图DAG模型中所需的所有类型的算子的组;
若存在空组,则确定所述计算节点的算子类型为所述空组中缺少的算子类型;以及
若不存在空组,则根据各组中不同类型的算子数量比例,确定所述计算节点的算子类型为比例最低的算子类型。
14.根据权利要求12所述的装置,其中,所述分组确定单元配置用于按如下确定所述计算节点归入的组:
确定是否存在空组,其中空组是指未包含计算任务的有向无环图DAG模型中所需的所有类型的算子的组;
若存在空组,则将所述计算节点归入所述空组;以及
若不存在空组,则根据各组中计算节点的数量,将所述计算节点归入数量最少的组。
15.根据权利要求12所述的装置,其中,所述装置还包括:
调整单元,配置用于根据每个组内计算节点的数据中心分布,调整组内的计算节点,以使得位于同一数据中心的计算节点集中分入同一组。
16.根据权利要求15所述的装置,其中所述调整单元包括:
主数据中心确定单元,配置用于确定每个组的主数据中心,所述组的主数据中心是指所述组内大部分计算节点所位于的数据中心;以及
节点调整单元,配置用于将组内不位于主数据中心的计算节点调整至其他组。
17.根据权利要求16所述的装置,其中所述主数据中心确定单元配置用于按如下确定每个组的主数据中心:
确定每个组内每种类型的算子的主数据中心及对应的计算节点数量,所述算子的主数据中心是指所述组内具有该算子类型的大部分计算节点所位于的数据中心;以及
将对应的计算节点数量最大的算子的主数据中心确定为所述组的主数据中心。
18.根据权利要求16所述的装置,其中所述节点调整单元配置用于按如下调整计算节点:
对于组i内不位于主数据中心Mi的计算节点PE[si],将该计算节点PE[si]与另一组j内不位于其主数据中心Mj但位于主数据中心Mi的计算节点PE[sj]相互交换。
19.根据权利要求12-18任一所述的装置,其中所述流式计算系统至少存在一个组包含计算任务的有向无环图DAG模型中所需的所有类型的算子,并且所述装置还包括:
任务分配单元,配置用于将计算任务分配给包含有DAG模型中所需的所有类型的算子的组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510150536.6A CN104683488B (zh) | 2015-03-31 | 2015-03-31 | 流式计算系统及其调度方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510150536.6A CN104683488B (zh) | 2015-03-31 | 2015-03-31 | 流式计算系统及其调度方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104683488A CN104683488A (zh) | 2015-06-03 |
CN104683488B true CN104683488B (zh) | 2018-03-30 |
Family
ID=53318054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510150536.6A Active CN104683488B (zh) | 2015-03-31 | 2015-03-31 | 流式计算系统及其调度方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104683488B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354722B (zh) * | 2015-07-15 | 2019-12-24 | 阿里巴巴集团控股有限公司 | 一种流式计算系统的消息处理方法和装置 |
JP6983154B2 (ja) * | 2015-10-28 | 2021-12-17 | グーグル エルエルシーGoogle LLC | 計算グラフの処理 |
CN105516002B (zh) * | 2015-12-07 | 2019-07-02 | 百度在线网络技术(北京)有限公司 | 数据传输方法及装置 |
CN105760511B (zh) * | 2016-02-24 | 2018-11-13 | 南京信息职业技术学院 | 一种基于storm的大数据自适应拓扑处理方法 |
CN105610992A (zh) * | 2016-03-31 | 2016-05-25 | 浪潮通信信息系统有限公司 | 一种分布式流计算系统任务分配负载均衡方法 |
CN105786626B (zh) * | 2016-04-11 | 2019-02-19 | 南京邮电大学 | 基于K划分的Storm平台线程分配方法 |
CN106130960B (zh) * | 2016-06-12 | 2019-08-09 | 微梦创科网络科技(中国)有限公司 | 盗号行为的判断系统、负载调度方法和装置 |
CN107959705B (zh) * | 2016-10-18 | 2021-08-20 | 阿里巴巴集团控股有限公司 | 流式计算任务的分配方法和控制服务器 |
CN109426574B (zh) * | 2017-08-31 | 2022-04-05 | 华为技术有限公司 | 分布式计算系统,分布式计算系统中数据传输方法和装置 |
CN108388474A (zh) * | 2018-02-06 | 2018-08-10 | 北京易沃特科技有限公司 | 基于dag的智能分布式计算管理系统及方法 |
CN111796917B (zh) | 2019-04-09 | 2024-06-25 | 华为技术有限公司 | 算子运算调度方法和装置 |
CN111752709B (zh) * | 2020-06-22 | 2024-04-30 | 深圳鲲云信息科技有限公司 | Ai计算配置方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101808104A (zh) * | 2009-02-12 | 2010-08-18 | 李冰 | 一种以流式方式运行的互联网建立方法 |
CN103345514A (zh) * | 2013-07-09 | 2013-10-09 | 焦点科技股份有限公司 | 大数据环境下的流式数据处理方法 |
CN104052811A (zh) * | 2014-06-17 | 2014-09-17 | 华为技术有限公司 | 一种业务调度的方法、装置及系统 |
CN104267939A (zh) * | 2014-09-17 | 2015-01-07 | 华为技术有限公司 | 一种业务处理的方法、装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7349392B2 (en) * | 2001-09-14 | 2008-03-25 | Hewlett-Packard Development Company, L.P. | Assigning IP addresses in an internet data center |
EP3296871B1 (en) * | 2012-08-31 | 2019-01-09 | Huawei Technologies Co., Ltd. | Central processing unit resource allocation method and computing node |
-
2015
- 2015-03-31 CN CN201510150536.6A patent/CN104683488B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101808104A (zh) * | 2009-02-12 | 2010-08-18 | 李冰 | 一种以流式方式运行的互联网建立方法 |
CN103345514A (zh) * | 2013-07-09 | 2013-10-09 | 焦点科技股份有限公司 | 大数据环境下的流式数据处理方法 |
CN104052811A (zh) * | 2014-06-17 | 2014-09-17 | 华为技术有限公司 | 一种业务调度的方法、装置及系统 |
CN104267939A (zh) * | 2014-09-17 | 2015-01-07 | 华为技术有限公司 | 一种业务处理的方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
《大数据流式计算:关键技术及系统实例》;孙大为等;《软件学报 》;20140415;第25卷(第4期);第839-859页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104683488A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104683488B (zh) | 流式计算系统及其调度方法和装置 | |
CN107666412B (zh) | 服务功能链的虚拟网络功能部署方法 | |
CN105610715B (zh) | 一种基于sdn的云数据中心多虚拟机迁移调度计划方法 | |
CN104270421B (zh) | 一种支持带宽保证的多租户云平台任务调度方法 | |
CN107395501A (zh) | 一种网络服务功能链的跨域部署方法 | |
CN108965014A (zh) | QoS感知的服务链备份方法及系统 | |
Dai et al. | Optimal resource allocation for maximizing performance and reliability in tree-structured grid services | |
CN108696777A (zh) | 最小交叉串扰的空分复用频谱灵活光网络资源分配方法 | |
Ayoubi et al. | MINTED: Multicast virtual network embedding in cloud data centers with delay constraints | |
CN103685053B (zh) | 一种基于剩余任务处理时间补偿的网络处理器负载均衡调度方法 | |
CN105379204B (zh) | 用于选择数据路由的资源的方法和系统 | |
CN106817306B (zh) | 一种确定目标路由的方法及装置 | |
CN106533806A (zh) | 多租户SDN网络中基于应用感知提供跨层QoS的方法 | |
CN104486194A (zh) | 一种多可靠性等级虚拟网络控制系统和方法 | |
CN105960779A (zh) | 具有基于机器学习的路由模型的数据路由 | |
CN106681815A (zh) | 一种虚拟机并发迁移方法 | |
CN103763174A (zh) | 一种基于功能块的虚拟网络映射方法 | |
CN106130931A (zh) | 弹性光网络中基于进化多目标的路由频隙分配方法 | |
CN101651600B (zh) | 网格网络中更新链路代价的方法和装置 | |
Li et al. | MapReduce task scheduling in heterogeneous geo-distributed data centers | |
Fan et al. | Node essentiality assessment and distributed collaborative virtual network embedding in datacenters | |
CN107483355B (zh) | 面向数据中心的在线场景低带宽开销流量调度方案 | |
CN113300861B (zh) | 网络切片配置方法、装置以及存储介质 | |
Lin et al. | Scheduling for time-constrained big-file transfer over multiple paths in cloud computing | |
CN102025615B (zh) | 一种光通讯网络中小粒度业务路径规划的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |