CN104052811A - 一种业务调度的方法、装置及*** - Google Patents

一种业务调度的方法、装置及*** Download PDF

Info

Publication number
CN104052811A
CN104052811A CN201410270392.3A CN201410270392A CN104052811A CN 104052811 A CN104052811 A CN 104052811A CN 201410270392 A CN201410270392 A CN 201410270392A CN 104052811 A CN104052811 A CN 104052811A
Authority
CN
China
Prior art keywords
operator
cut apart
subgraph
apart
degree
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
Application number
CN201410270392.3A
Other languages
English (en)
Other versions
CN104052811B (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410270392.3A priority Critical patent/CN104052811B/zh
Publication of CN104052811A publication Critical patent/CN104052811A/zh
Priority to PCT/CN2014/094916 priority patent/WO2015192627A1/zh
Priority to EP14893697.4A priority patent/EP3001646B1/en
Priority to US14/982,375 priority patent/US9990236B2/en
Application granted granted Critical
Publication of CN104052811B publication Critical patent/CN104052811B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Abstract

本发明公开了一种业务调度的方法,应用于流计算***,所述流计算***用于调度并处理业务,所述流计算***包括主控节点与多个工作节点;所述主控节点用于将所述业务包含的各个子业务调度到所述多个工作节点进行处理,包括:获取所述业务的流式计算应用图,根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。本发明实施例提供的方法,可以使业务均衡的得到物理资源和网络资源,提高了物理资源和网络资源的利用率。

Description

一种业务调度的方法、装置及***
技术领域
本发明涉及计算机技术领域,具体涉及一种业务调度的方法,装置及***。
背景技术
实时流计算是指数据出现时便立刻对其进行处理,发生一个事件进行一次处理,而不是缓存起来成一批处理。例如商用搜索引擎。
流式计算应用模型由算子和流组成,其中算子(operator)是承载业务逻辑的数据处理单元,可被流计算平台分布式调度执行的最小单元,而流(stream)则是算子间交互的数据。
基于流式数据处理模型编写的业务应用经过流计算***的主控节点调度后,会在流计算平台上分布式运行,流计算平台包括主控节点和运行业务的物理节点。
流处理***的调度主要围绕三个核心要素:
1、业务模型(运行在流计算平台上的业务应用,拓扑图)。
2、物理资源(平台集群中的物理节点内存、CPU等计算资源)。
3、网络传输资源(平台集群中的网络吞吐与带宽资源)。
以上三者会相互影响与干涉,业务模型的分配会决定物理资源使用的多少;物理资源使用的多少会影响网络传输的时延;网络传输的时延又会影响到任务执行的效率。
当前业界已存在的流计算***基本是随机将任务调度到物理资源上,没有兼顾以上三要素进行流式应用的调度,导致业务部署到平台上运行时存在资源使用不均衡。
发明内容
本发明实施例提供一种业务调度的方法,可以使业务均衡的分布到工作节点上,从而均衡的得到物理资源和网络资源,提高了物理资源和网络资源的利用率。本发明实施例还提供了相应的装置及***。
本发明第一方面提供一种业务调度的方法,应用于流计算***,所述流计算***用于调度并处理业务,所述流计算***包括主控节点与多个工作节点;所述主控节点用于将所述业务包含的各个子业务调度到所述多个工作节点进行处理,包括:
获取所述业务的流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑;
根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,所述算子度为所述算子进出流量的流量权值累加和,所述算子势为所述算子在所述流式计算应用图中的负载度;
将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。
结合第一方面,在第一种可能的实现方式中,所述根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割之前,所述方法还包括:
确定处理所述流式计算应用图所针对的业务所需要的工作节点的个数;
根据处理所述业务所需要的工作节点的个数,确定所述分割数量。
结合第一方面或第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,包括:
根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图;
根据所述算子势对所述第一次分割图进行第二次分割,得到所述分割子图。
结合第一方面第二种可能的实现方式,在第三种可能的实现方式中,所述根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图,包括:
根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,所述中心算子的算子度至少大于一个与之相连的算子的算子度;
以各个所述中心算子作为遍历的起点,逐层遍历除所述中心算子之外的其他算子,直到遍历到除所述中心算子之外的其他中心算子或摇摆算子,所述摇摆算子为以相邻两中心算子为起点遍历时同时被遍历到的算子;
将从所述中心算子开始,到遍历到所述其他中心算子或所述摇摆算子之前所遍历到的算子划分到所述第一次分割图。
结合第一方面第三种可能的实现方式,在第四种可能的实现方式中,所述根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,包括:
根据所述算子的算子度确定所述流式计算应用图中的核心算子和普通算子,所述核心算子的算子度高于与之连接的算子的算子度,所述普通算子为所述流式计算应用图中除掉所述核心算子之外的算子;
根据所述分割数量,从所述核心算子中确定个数与所述分割数量相同的中心算子,或者,从所述核心算子与所述普通算子的组合中确定个数与所述分割数量相同的中心算子。
结合第一方面第四种可能的实现方式,在第五种可能的实现方式中,所述从所述核心算子中确定个数与所述分割数量相同的中心算子,包括:
当所述核心算子的数量不小于所述中心算子的数量时,选择算子度最大的所述分割数量的核心算子作为所述中心算子。
结合第一方面第四种可能的实现方式,在第六种可能的实现方式中,所述从所述核心算子与所述普通算子的组合中确定个数与所述分割数量相同的中心算子,包括:
当所述核心算子的数量小于所述中心算子的数量时,选择算子度最大的普通算子作为所述核心算子提供不足部分的所述中心算子。
结合第一方面第三至第六种可能的实现方式中的任意一种,在第七种可能的实现方式中,所述根据所述算子势对所述第一次分割图进行第二次分割,得到所述分割子图,包括:
确定所述第一次分割图的图分区势,所述图分区势为所述第一次分割图中算子的算子势的累加和;
根据相邻第一次分割图之间的摇摆算子的算子势和所述相邻第一次分割图的图分区势,确定所述摇摆算子应划入的第一次分割图,得到所述分割子图。
结合第一方面、第一方面第一至第七种可能的实现方式中的任意一种,在第八种可能的实现方式中,所述方法还包括:
计算图分区负载,所述图分区负载为所述分割子图中算子的负载之和;
根据所述图分区负载计算负载误差值;
在所述负载误差值大于预置的第一检验阀值时,将所述分割子图中的摇摆算子调整到所述负载误差值最小的分割子图中,得到调整后的分割子图;
所述将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理,包括:
将每个所述调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
结合第一方面、第一方面第一至第七种可能的实现方式中的任意一种,在第九种可能的实现方式中,所述方法还包括:
计算图分区网络入流、出流、入度和出度,所述图分区网络入流为所述分割子图中跨物理节点接收数据流的算子的入流,所述图分区网络出流为所述分割子图中跨物理节点发送数据流的算子的出流,所述图分区网络入度为所述分割子图中跨物理节点接收数据流的算子的接收数据流的路数,所述图分区网络出度为所述分割子图中跨物理节点发送数据流的算子的发送数据流的路数;
根据所述图分区网络入流、出流、入度和出度,计算流量误差值;
在所述流量误差值大于预置的第二检验阀值时,将所述分割子图中的摇摆算子调整到所述流量误差值最小的分割子图中,得到调整后的分割子图;
所述将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理,包括:
将每个所述调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
本发明第二方面提供一种业务调度的装置,应用于流计算***,所述流计算***用于调度并处理业务,所述流计算***包括主控节点与多个工作节点;所述主控节点用于将所述业务包含的各个子业务调度到所述多个工作节点进行处理,所述装置包括:
获取单元,用于获取所述业务的流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑;
分割单元,用于根据所述获取单元获取的所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,所述算子度为所述算子进出流量的流量权值累加和,所述算子势为所述算子在所述流式计算应用图中的负载度;
调度单元,用于将每个所述分割单元分割得到的分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。
结合第二方面,在第一种可能的实现方式中,所述装置还包括:
确定单元,用于在所述分割单元对所述流式计算应用图进行分割之前,确定处理所述流式计算应用图所针对的业务所需要的工作节点的个数,根据处理所述业务所需要的工作节点的个数,确定所述分割数量。
结合第二方面或第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述分割单元包括:
第一分割子单元,用于根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图;
第二分割子单元,用于根据所述算子势对所述第一分割子单元分割得到的所述第一次分割图进行第二次分割,得到所述分割子图。
结合第二方面第二种可能的实现方式,在第三种可能的实现方式中,所述第一分割子单元包括:
确定子单元,用于根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,所述中心算子的算子度至少大于一个与之相连的算子的算子度;
遍历子单元,用于以所述确定子单元确定的各个所述中心算子作为遍历的起点,逐层遍历除所述中心算子之外的其他算子,直到遍历到除所述中心算子之外的其他中心算子或摇摆算子,所述摇摆算子为以相邻两中心算子为起点遍历时同时被遍历到的算子;
划分子单元,用于将从所述中心算子开始,到所述遍历子单元遍历到所述其他中心算子或所述摇摆算子之前所遍历到的算子划分到所述第一次分割图。
结合第二方面第三种可能的实现方式,在第四种可能的实现方式中,
所述确定子单元,具体用于:
根据所述算子的算子度确定所述流式计算应用图中的核心算子和普通算子,所述核心算子的算子度高于与之连接的算子的算子度,所述普通算子为所述流式计算应用图中除掉所述核心算子之外的算子;
根据所述分割数量,从所述核心算子中确定个数与所述分割数量相同的中心算子,或者,从所述核心算子与所述普通算子的组合中确定个数与所述分割数量相同的中心算子。
结合第二方面第四种可能的实现方式,在第五种可能的实现方式中,
所述确定子单元,具体用于当所述核心算子的数量不小于所述中心算子的数量时,选择算子度最大的所述分割数量的核心算子作为所述中心算子。
结合第二方面第四种可能的实现方式,在第六种可能的实现方式中,
所述确定子单元,具体用于当所述核心算子的数量小于所述中心算子的数量时,选择算子度最大的普通算子作为所述核心算子提供不足部分的所述中心算子。
结合第二方面第三至第六种可能的实现方式中的任意一种,在第七种可能的实现方式中,
所述第二分割子单元,具体用于:
确定所述第一次分割图的图分区势,所述图分区势为所述第一次分割图中算子的算子势的累加和;
根据相邻第一次分割图之间的摇摆算子的算子势和所述相邻第一次分割图的图分区势,确定所述摇摆算子应划入的第一次分割图,得到所述分割子图。
结合第二方面、第二方面第一至第七种可能的实现方式中的任意一种,在第八种可能的实现方式中,所述装置还包括:第一计算单元和第一调整单元,
所述第一计算单元,用于计算图分区负载,所述图分区负载为所述分割子图中算子的负载之和,根据所述图分区负载计算负载误差值;
所述第一调整单元,用于在所述第一计算单元计算的所述负载误差值大于预置的第一检验阀值时,将所述分割子图中的摇摆算子调整到所述负载误差值最小的分割子图中,得到调整后的分割子图;
所述调度单元,用于将每个所述第一调整单元调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
结合第二方面、第二方面第一至第七种可能的实现方式中的任意一种,在第九种可能的实现方式中,所述装置还包括:第二计算单元和第二调整单元,
所述第二计算单元,用于计算图分区网络入流、出流、入度和出度,所述图分区网络入流为所述分割子图中跨物理节点接收数据流的算子的入流,所述图分区网络出流为所述分割子图中跨物理节点发送数据流的算子的出流,所述图分区网络入度为所述分割子图中跨物理节点接收数据流的算子的接收数据流的路数,所述图分区网络出度为所述分割子图中跨物理节点发送数据流的算子的发送数据流的路数,根据所述图分区网络入流、出流、入度和出度,计算流量误差值;
所述第二调整单元,用于在所述第二计算单元计算出的所述流量误差值大于预置的第二检验阀值时,将所述分割子图中的摇摆算子调整到所述流量误差值最小的分割子图中,得到调整后的分割子图;
所述调度单元,用于将每个所述第二调整单元调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
本发明第三方面提供一种流计算***,所述流计算***用于调度并处理业务,所述流计算***包括主控节点与多个工作节点;所述主控节点用于将所述业务包含的各个子业务调度到所述多个工作节点进行处理,
所述主控节点,用于:
获取所述业务的流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑;
根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,所述算子度为所述算子进出流量的流量权值累加和,所述算子势为所述算子在所述流式计算应用图中的负载度;
将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。
本发明实施例提供的业务调度的方法,根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到分割子图,;将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。本发明实施例综合调度过程中涉及的三要素进行平衡图分割,由于分割的过程中考虑了算子的算子度,因此能获取尽可能小的网络传输开销,同时,还考了了节点势,因此能获取尽可能优的节点负载配比,与现有技术中业务部署到流平台上运行时存在资源使用不均衡相比,本发明实施例提供的方法,可以使业务均衡的得到物理资源和网络资源,提高了物理资源和网络资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中业务调度的方法的一实施例示意图;
图2是本发明实施例中业务调度的方法的另一实施例示意图;
图3是本发明实施例中业务调度的方法的另一实施例示意图;
图4是本发明实施例中业务调度的方法的另一实施例示意图;
图5是本发明实施例中业务调度的方法的另一实施例示意图;
图6是本发明实施例中业务调度的方法的另一实施例示意图;
图7是本发明实施例中业务调度的方法的另一实施例示意图;
图8是本发明实施例中业务调度的装置的一实施例示意图;
图9是本发明实施例中业务调度的装置的另一实施例示意图;
图10是本发明实施例中业务调度的装置的另一实施例示意图;
图11是本发明实施例中业务调度的装置的另一实施例示意图;
图12是本发明实施例中业务调度的装置的另一实施例示意图;
图13是本发明实施例中业务调度的装置的另一实施例示意图;
图14是本发明实施例中业务调度的装置的另一实施例示意图;
图15是本发明实施例中流计算***的一实施例示意图。
具体实施方式
本发明实施例提供一种业务调度的方法,可以使业务均衡的分布到工作节点上,从而均衡的得到物理资源和网络资源,提高了物理资源和网络资源的利用率。本发明实施例还提供了相应的装置及***。以下分别进行详细说明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明实施例中的流计算***包括:主控节点和工作节点,在集群部署时,所述主控节点和工作节点都可以有一个或多个,主控节点可以是与工作节点分离的物理节点,在单机部署时,主控节点和工作节点可以是部署在同一个物理节点上的主控逻辑单元。流计算***用于调度并处理业务,具体过程是,主控节点负责将业务调度到工作节点上进行处理。一台物理节点可以包括一个工作节点,也可以包括多个工作节点,一台物理节点包括的工作节点的数量取决于该物理节点的硬件物理资源。可以将一个工作节点理解为是一份硬件物理资源。属于同一台物理节点中的工作节点间采用进程通信的方式进行通信,属于不同物理节点中的工作节点间采用网络通信的方式进行通信。流计算***可以将业务调度到工作节点上进行处理。针对运行在流计算***上的业务可以预先建立流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑。本发明实施例中的物理节点指的是物理设备。
如图1所示,流计算***包括主控节点、工作节点1、工作节点2和工作节点3。工作节点1、工作节点2属于物理节点1,工作节点3属于物理节点2。
主控节点将图1所示的流式计算应用图调度到工作节点1、工作节点2和工作节点3这三个工作节点上进行业务处理。图1所示的流式计算应用图为包含P1至P9的九个算子以及这九个算子之间的数据流走向的逻辑关系图。
被调度到工作节点1上的算子P1、P2和P3与被调度到工作节点2上的算子P4、P7和P9之间通过进程方式通信,P1、P2和P3,以及P4、P7和P9与被调度到工作节点3上的算子P5、P6、P8之间通过网络通信。
本发明实施例中的流式计算应用图包括有向无环图(Directed AcyclicGraph,DAG)、树状图或者含有环的图。
在执行业务调度的过程中,主控节点获取业务的流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑。
所述流式计算应用图为用户或开发人员根据所述业务预先建立的数据流,流式计算应用图用于表示流式应用的逻辑模型,流式计算应用图可以参阅图2进行理解,如图2所示的流式计算应用图包括13个算子,分别从n1到n13,有13条数据流,分别从s1到s13。图2中明确标出了数据流的走向,例如:数据流s1是从算子n1到算子n2,以及从算子n1到算子n3的数据流,表示数据流经算子n1逻辑处理后,产生的两条数据流s1,分别进入算子n2和算子n3进行逻辑处理。其他数据流的流向所表达的意思与数据流s1相同,只是所经历的算子不同,本处不做一一赘述。
根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,所述算子度为所述算子进出流量的流量权值累加和,所述算子势为所述算子在所述流式计算应用图中的负载度。
本发明实施例中的算子为逻辑处理单元,算子有两种描述参数,分别为算子负载度和进出流,算子负载度可以反映业务部署到物理节点工作节点后,业务按照所述算子的逻辑运行时所消耗的资源数,算子的负载度越高,业务运行时所消耗的资源数越多。算子进出流是指算子的入流和出流,例如:算子n2的入流为s1,出流为s2。
算子负载度中的***算子的算子负载度是开发人员在开发时给出的,自定义算子的算子负载度是用户参考***算子的算子负载度给出的。
算子的负载度与算子的类型有关系,所以可以参考算子类型给出算子负载度,流量权值与流派发策略有关系,所以可以参考流派发策略给出流量权值。例如,结合图2的算子和数据流,可以参阅表1和表2理解算子的负载度和数据流的流量权值。表1为算子负载度表,表2为数据流的流量权值表。
表1:算子负载度表
算子 算子类型 算子负载度
n1 TCP Adp Source 2
n2 split 1
n3 User defined 2
n4 User defined 6
n5 filter 2
n6 parser 4
n7 join 4
n8 aggregate 5
n9 User defined 3
n10 parser 4
n11 TCP Adp Sink 1
n12 csv Adp Sink 2
n13 csv Adp Sink 2
从表1中可以看出,算子有公共算子和用户自定义算子,其中,算子类型为用户自定义的User defined算子为用户自定义算子,其他的算子类型为传输控制协议适配源(Transmission Control Protocol Adp Source,TCP Adp Source)、***split、过滤filter、解析parser、关联join、聚合aggregate、传输控制协议适配输出TCP Adp Sink和格式适配输出csv Adp Sink的算子为公共算子。公共算子具体每种类型的算子负载度由开发人员在开发流式计算应用图时给出,用户自定义类型的算子的算子负载度由用户参考公共算子的负载度给出。
参阅表2,表2的流派发策略由开发人员在开发流式计算应用图时给出,每种派发策略都有对应的流量权值。流量权值就是流量的数字化描述值。具体参阅表2进行理解:
表2:数据流的流量权值表
s1 random 1
s2 all 3
s3 all 3
s4 direct 1
s5 random 1
s6 field hash 2
s7 field hash 2
s8 field hash 2
s9 random 1
s10 random 1
s11 field hash 2
s12 field hash 2
s13 field hash 2
结合表1和表2的算子负载度和流量权值,针对所述流式计算应用图定义了算子度和算子势两个概念,算子度为所述算子进出流量的流量权值的累加和,例如:针对算子n2,进出流分别为s1和s2,s1的流量权值为1,s2的流量权值为3,则算子n2的算子度为4,算子势就是算子在所述流式计算应用图中的负载度,例如:算子n2的算子负载度为1,则算子n2的算子势为1。
其中,流派发策略包括随机派发random、全派发all、直接派发direct和字段哈希派发field hash。
所述根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割之前,所述方法还包可以括:
确定处理所述流式计算应用图所针对的业务所需要的工作节点的个数;
根据处理所述业务所需要的工作节点的个数,确定所述分割数量。
在算子度和算子度都确定后,还需要结合图2的流式计算应用图确定该流式计算应用图需要分割为几个分割子图,在确定分割数量时可以考虑流式计算应用图对应的业务所需要的工作节点,也就是业务所需要的物理资源,如果只需要一个工作节点,就不需要分割,在本发明实施例中可以理解为分割数量为1,如果需要的多个工作节点,则可以结合流计算***中的工作节点,确定分割数量,例如:流计算***中存在3个工作节点,位于两个物理节点上,这两个物理节点的资源比为2:1(将内存、CPU等计算资源全部抽象数字化),那么流式计算应用图将会被分割为3个分割子图。
分割数量确定后,再结合所述流式计算应用图中算子的算子度和算子势,对流式计算应用图进行分割,将流式计算应用图分割为3个分割子图,具体的分割过程可以为:
根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图;
根据所述算子势对所述第一次分割图进行第二次分割,得到所述分割子图。
其中,根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图的具体过程可以为:
根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,所述中心算子的算子度至少大于一个与之相连的算子的算子度;
以各个所述中心算子作为遍历的起点,逐层遍历除所述中心算子之外的其他算子,直到遍历到除所述中心算子之外的其他中心算子或摇摆算子,所述摇摆算子为以相邻两中心算子为起点遍历时同时被遍历到的算子;
将从所述中心算子开始,到遍历到所述其他中心算子或所述摇摆算子之前所遍历到的算子划分到所述第一次分割图。
其中,所述根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,可以包括:
根据所述算子的算子度确定所述流式计算应用图中的核心算子和普通算子,所述核心算子的算子度高于与之连接的算子的算子度,所述普通算子为所述流式计算应用图中除掉所述核心算子之外的算子;
根据所述分割数量,从所述核心算子中确定个数与所述分割数量相同的中心算子,或者,从所述核心算子与所述普通算子的组合中确定个数与所述分割数量相同的中心算子。
其中,从所述核心算子中确定个数与所述分割数量相同的中心算子,可以包括:
当所述核心算子的数量不小于所述中心算子的数量时,选择算子度最大的所述分割数量的核心算子作为所述中心算子。
其中,从所述核心算子中确定个数与所述分割数量相同的中心算子,可以包括:
当所述核心算子的数量小于所述中心算子的数量时,选择算子度最大的普通算子作为所述核心算子提供不足部分的所述中心算子。
具体过程可以是:结合图2,将图2中的每个算子遍历一遍,找到核心算子和普通算子,核心算子的算子度高于与之连接的算子的算子度,流式计算应用图中除掉核心算子外的算子都为普通算子。
图2中13个算子的算子度的计算结果可以参阅表3进行理解:
表3:算子度表
算子 算子度
n1 2
n2 4
n3 5
n4 9
n5 3
n6 3
n7 3
n8 7
n9 2
n10 7
n11 2
n12 2
n13 2
结合表3中的算子的算子度,就可以确定图2中的核心算子为n4、n8、n10,其他的算子都为普通算子。
本实施例中的分割数量为3,则可以将n4、n8、n10都作为中心算子。当核心算子的数量大于3时,可以从核心算子中选择3个算子都最大的核心算子作为中心算子,当核心算子的数量不足3个时,例如:只有两个核心算子,那么将这两个核心算子确定为中心算子,不足的1个再从普通算子中选择一个算子度最大的普通算子作为第三个所述中心算子。
本发明实施例中,在确定3个中心算子后,如:确定了中心算子n4、n8、n10后,分别从n4、n8、n10开始遍历,遍历时是逐层遍历,n4遍历到与其相连的算子分别为n2、n3、n5、n6和n7,n8遍历到与其相连的算子分别为n5、n6、n7和n9,n10遍历到与其相连的算子分别为n9、n11、n12和n13,n4遍历到n2和n3后,再以n2和n3为新的扩张起点,遍历到n1。n5、n6和n7为n4和n8扩张时相遇处的算子,则n5、n6和n7为摇摆算子,n9为n8和n10分别扩张时相遇处的算子,则n9为摇摆算子。从图2所示的连接关系上来看,n10也可以称为桥梁算子,n1、n11、n12和n13也可以称为边缘算子。
这样,第一次分割后,就可以确定第一次分割图,可以参阅图3进行理解,第一次分割出的三个第一次分割图中,n4为中心算子的第一次分割图中包含算子n1、n2、n3和n4,n8为中心算子的第一次分割图中包含算子n8,n10为中心算子的第一次分割图中包含算子n10、n11、n12和n13。
在第一次分割确定如图3所示的第一次分割图后,再根据所述算子势对所述第一次分割图进行第二次分割,得到所述分割子图,如图4所示。
在第一次分割图划定后,所述根据所述算子势对所述第一次分割图进行第二次分割,得到所述分割子图,可以包括:
确定所述第一次分割图的图分区势,所述图分区势为所述第一次分割图中算子的算子势的累加和;
根据相邻第一次分割图之间的摇摆算子的算子势和所述相邻第一次分割图的图分区势,确定所述摇摆算子应划入的第一次分割图,得到所述分割子图。
本发明实施例中,根据算子势对第一个分割图进行第二次分割,实际上是将第一次分割时的摇摆算子n5、n6、n7和n9划分到相应的第一次分割图中,得到最终的分割子图。
参阅表2和算子势的定义,可以得到图2中13个算子的算子势。图2所示的算子势可以参阅表4进行理解。
表4:算子度势
算子 算子势
n1 2
n2 1
n3 2
n4 6
n5 2
n6 4
n7 4
n8 5
n9 3
n10 4
n11 1
n12 2
n13 2
关于摇摆算子具体划分到哪个第一次分割图中,可以按照如下过程进行理解:
先计算三个第一次分割图的图分区势,图分区势为第一次分割图中包含的算子的算子势的累加和,例如:将n4的第一次分割图设为X,将n8的第一次分割图设为Y,将n10的第一次分割图设为Z,则X的图分区势为11,Y的图分区势为5,Z的图分区势为9,X区与Y区的图分区势差距较大,优先将摇摆算子n5、n6和n7中算子势较大的算子划分到Y区,再不断的计算Y区的图分区势,将算子n6和n7划分到Y区后,Y区的图分区势达到13,比X区的图分区势大2,则可以将算子n5划分到X分区,这样,划分后的X区的图分区势也为13,与Y区相同,Z区的图分区势为9,Y区经过划分后图分区势已经达到13,则直接将n9划分到Z区,划分后Z区的图分区势为12。二次分割后,分割后的X区用图分区1来标记,分割后的Y区用图分区2来标记,分割后的Z区用图分区3来标记。
上述对摇摆算子进行分区时,根据相邻分区的图分区势的差异直接进行的划分,当相邻分区的图分区势差异较小时,摇摆算子的算子势无论加入哪个分区都会导致该分区的图分区势高于另外一个分区的图分区势时,可以通过比例趋一原则来确定摇摆算子的划分。
比例趋一原则举例说明:(1)假设存在两个图分区A、B,图分区势分别为4、5。(2)算子a为两分区间的摇摆算子,算子势为2。(3)若算子a划入A区,两图分区势比为:6:5;若算子a划入B区,两图分区势比为:4:7。(4)根据|6/5-1|<|4/7-1|,确定算子a划入A区。
第二次分割后的三个分割子图的图分区势分别为13、13和12,可以参阅表5进行理解:
表5:图分区和图分区势
图分区 图分区势
1 13
2 13
3 12
在三个分割子图都被分割好后,因在分割前确定的有两个物理节点,物理资源比为2:1,所以可以将这三个分割子图中包含的算子对应的业务,调度到与所述分割子图对应的物理资源上运行。例如:参阅图5,将n1、n2、n3、n4和n5调度到第一个物理节点上的worker1运行,将n6、n7和n8调度到第一个物理节点上的worker2上运行,将n9、n10、n11、n12和n13调度到第二个物理节点上的worker3上运行。物理节点之间通过网络通信。
在分割子图中的各个算子对应的子业务工作节点上后,还可以:
计算图分区负载,所述图分区负载为所述分割子图中算子的负载之和;
根据所述图分区负载计算负载误差值;
在所述负载误差值大于预置的第一检验阀值时,将所述分割子图中的摇摆算子调整到所述负载误差值最小的分割子图中,得到调整后的分割子图;
将每个所述调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。或者,
计算图分区网络入流、出流、入度和出度,所述图分区网络入流为所述分割子图中跨物理节点接收数据流的算子的入流,所述图分区网络出流为所述分割子图中跨物理节点发送数据流的算子的出流,所述图分区网络入度为所述分割子图中跨物理节点接收数据流的算子的接收数据流的路数,所述图分区网络出度为所述分割子图中跨物理节点发送数据流的算子的发送数据流的路数;
根据所述图分区网络入流、出流、入度和出度,计算流量误差值;
在所述流量误差值大于预置的第二检验阀值时,将所述分割子图中的摇摆算子调整到所述流量误差值最小的分割子图中,得到调整后的分割子图;
将每个所述调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。在各算子被调度到相应的工作节点上后,还需要监控每个算子的运行信息,然后根据监控结果微调各个图分割区域中的摇摆算子,使物理资源或者网络资源进一步达到更佳的平衡状态。算子监控信息的记录可以建立算子的运行信息监控表,记录算子运行时所消耗资源负载,数据流传输时入流量和出流量,然后根据运行信息监控表中记录的信息计算图分区负载和图分区流量,所述图分区负载为所述分割子图中算子的负载之和,所述图分区流量为所述分割子图中算子入流之和,以及出流之和。
算子的运行信息监控表可以参阅表6进行理解:
表6:算子的运行信息监控表
算子 负载 入流 出流
n1 2 0 3
n2 1 2.3 2.3
n3 2 1.7 1.6
n4 9 3 4.2
n5 2 2.8 1
n6 4 1 1
n7 4 1.9 1.9
n8 5 3.9 1.5
n9 3 1.5 4.5
n10 4 4.5 4.5
n11 1 1.5 0
n12 2 1.5 0
n13 2 1.5 0
根据表5和表6可以得到表7所述的分区信息表。表7所示的分区信息表中的图分区网络入度、出度、入流和出流都是跨物理节点的,所以图分区1中的图分区网络入度、出度、入流和出流都是0,图分区2中的图分区网络入度、入流都是0,从n8到n9只有一条数据流,所以出度为1,参阅表6可知,出流为1.5。图分区3的图分区网络入度为1、入流都是1.5,出度和出流都为0。
表7:分区信息表:
计算负载误差值时可以根据公式1计算得到,计算流量误差时可以根据公式2计算得到:
公式1:负载误差值=︱图分区负载-图分区势)︱/图分区势
公式2:流量误差值=︱图分区网络出流-图分区网络出度)︱/图分区网络出度,或者,流量误差值=︱图分区网络入流-图分区网络入度)︱/图分区网络入度。
在调整时可以考虑主要调整负载的均衡,还是主要调整网络资源的均衡,如果侧重负载的均衡,则可以通过负载误差值和预置的负载阀值的关系,确定如何调整摇摆算子。假设负载阀值为0.2,根据表7和公式1计算出图分区1中的负载误差值=︱16-13︱/13=0.230769〉0.2,说明图分区1的负载偏重,图分区2和图分区3中的负载误差值都是0,则可以考虑将图分区1中的摇摆算子n5调整到图分区2或图分区3,当调整到图分区3时,可以保证三个图分区的负载误差值都小于0.2,则将摇摆算子n5调整到图分区3。调整后的流式计算应用图的分割子图可以参阅图6进行理解。
本发明实施例中,在做业务调度之前,充分考虑到了流式计算应用图中的算子度和算子势,然后根据流式计算应用图中的算子度和算子势对流式计算应用图进行分割,将分割后的结果调度到物理节点上,从而可以使业务均衡的得到物理资源和网络资源。提高了物理资源和网络资源的利用率。
参阅图7,本发明实施例提供的业务调度的方法包括:
本发明实施例所提供的业务调度的方法,应用于流计算***,所述流计算***用于调度并处理业务,所述流计算***包括主控节点与多个工作节点;所述主控节点用于将所述业务包含的各个子业务调度到所述多个工作节点进行处理,所述方法包括:
101、获取所述业务的流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑。
102、根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,所述算子度为所述算子进出流量的流量权值累加和,所述算子势为所述算子在所述流式计算应用图中的负载度。
103、将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。
本发明实施例提供的业务调度的方法,根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。本发明实施例综合调度过程中涉及的三要素进行平衡图分割,由于分割的过程中考虑了算子的算子度,因此能获取尽可能小的网络传输开销,同时,还考了了节点势,因此能获取尽可能优的节点负载配比,与现有技术中业务部署到流平台上运行时存在资源使用不均衡相比,本发明实施例提供的方法,可以使业务均衡的得到物理资源和网络资源。提高了物理资源和网络资源的利用率。
可选地,在上述图7对应的实施例的基础上,本发明实施例提供的业务调度的方法中,所述根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割之前,所述方法还可以包括:
确定处理所述流式计算应用图所针对的业务所需要的工作节点的个数;
根据处理所述业务所需要的工作节点的个数,确定所述分割数量。
可选地,在上述图7对应的实施例或可选实施例的基础上,本发明实施例提供的业务调度的方法中,所述根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,可以包括:
根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图;
根据所述算子势对所述第一次分割图进行第二次分割,得到所述分割子图。
可选地,在上述图7对应的可选实施例的基础上,本发明实施例提供的业务调度的方法中,所述根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图,可以包括:
根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,所述中心算子的算子度至少大于一个与之相连的算子的算子度;
以各个所述中心算子作为遍历的起点,逐层遍历除所述中心算子之外的其他算子,直到遍历到除所述中心算子之外的其他中心算子或摇摆算子,所述摇摆算子为以相邻两中心算子为起点遍历时同时被遍历到的算子;
将从所述中心算子开始,到遍历到所述其他中心算子或所述摇摆算子之前所遍历到的算子划分到所述第一次分割图。
可选地,在上述图7对应的可选实施例的基础上,本发明实施例提供的业务调度的方法中,所述根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,可以包括:
根据所述算子的算子度确定所述流式计算应用图中的核心算子和普通算子,所述核心算子的算子度高于与之连接的算子的算子度,所述普通算子为所述流式计算应用图中除掉所述核心算子之外的算子;
根据所述分割数量,从所述核心算子中确定个数与所述分割数量相同的中心算子,或者,从所述核心算子与所述普通算子的组合中确定个数与所述分割数量相同的中心算子。
可选地,在上述图7对应的可选实施例的基础上,本发明实施例提供的业务调度的方法中,所述从所述核心算子中确定个数与所述分割数量相同的中心算子,可以包括:
当所述核心算子的数量不小于所述中心算子的数量时,选择算子度最大的所述分割数量的核心算子作为所述中心算子。
可选地,在上述图7对应的可选实施例的基础上,本发明实施例提供的业务调度的方法中,所述从所述核心算子中确定个数与所述分割数量相同的中心算子,可以包括:
当所述核心算子的数量小于所述中心算子的数量时,选择算子度最大的普通算子作为所述核心算子提供不足部分的所述中心算子。
可选地,在上述图7对应的可选实施例的基础上,本发明实施例提供的业务调度的方法中,所述根据所述算子势对所述第一次分割图进行第二次分割,得到所述分割子图,包括:
确定所述第一次分割图的图分区势,所述图分区势为所述第一次分割图中算子的算子势的累加和;
根据相邻第一次分割图之间的摇摆算子的算子势和所述相邻第一次分割图的图分区势,确定所述摇摆算子应划入的第一次分割图,得到所述分割子图。
可选地,在上述图7对应的实施例或可选实施例的基础上,本发明实施例提供的业务调度的方法中,所述方法还可以包括:
计算图分区负载,所述图分区负载为所述分割子图中算子的负载之和;
根据所述图分区负载计算负载误差值;
在所述负载误差值大于预置的第一检验阀值时,将所述分割子图中的摇摆算子调整到所述负载误差值最小的分割子图中,得到调整后的分割子图;
所述将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理,可以包括:
将每个所述调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
可选地,在上述图7对应的实施例或可选实施例的基础上,本发明实施例提供的业务调度的方法中,所述方法还可以包括:
计算图分区网络入流、出流、入度和出度,所述图分区网络入流为所述分割子图中跨物理节点接收数据流的算子的入流,所述图分区网络出流为所述分割子图中跨物理节点发送数据流的算子的出流,所述图分区网络入度为所述分割子图中跨物理节点接收数据流的算子的接收数据流的路数,所述图分区网络出度为所述分割子图中跨物理节点发送数据流的算子的发送数据流的路数;
根据所述图分区网络入流、出流、入度和出度,计算流量误差值;
在所述流量误差值大于预置的第二检验阀值时,将所述分割子图中的摇摆算子调整到所述流量误差值最小的分割子图中,得到调整后的分割子图;
所述将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理,可以包括:
将每个所述调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
本发明实施例所提供的业务调度的方法的过程可以参阅图1至图6部分的描述进行理解,本处不做过多赘述。
本发明实施例综合调度过程中涉及的三要素进行平衡图分割,由于分割的过程中考虑了算子的算子度,因此能获取尽可能小的网络传输开销,同时,还考了了节点势,因此能获取尽可能优的节点负载配比,与现有技术中业务部署到流平台上运行时存在资源使用不均衡相比,本发明实施例提供的方法,可以使业务均衡的得到物理资源和网络资源。提高了物理资源和网络资源的利用率。
参阅图8,基于上述方法实施例,本发明实施例还提供一种业务调度的装置,应用于流计算***,所述流计算***用于调度并处理业务,所述流计算***包括主控节点与多个工作节点;所述主控节点用于将所述业务包含的各个子业务调度到所述多个工作节点进行处理,所述装置包括:
获取单元301,用于获取所述业务的流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑;
分割单元302,用于根据所述获取单元301获取的所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,所述算子度为所述算子进出流量的流量权值累加和,所述算子势为所述算子在所述流式计算应用图中的负载度;
调度单元303,用于将每个所述分割单元302分割得到的分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。
本发明实施例所提供的装置,与现有技术中业务部署到流平台上运行时存在资源使用不均衡相比,可以使业务均衡的得到物理资源和网络资源。提高了物理资源和网络资源的利用率。
可选地,在上述图8对应的方案的基础上,参阅图9,本发明实施例提供的业务调度的装置30的第一可选方案中,所述业务调度的装置30还包括:
确定单元304,用于在所述分割单元302对所述流式计算应用图进行分割之前,确定处理所述流式计算应用图所针对的业务所需要的工作节点的个数,根据处理所述业务所需要的工作节点的个数,确定所述分割数量。
可选地,在上述图8对应的方案的基础上,参阅图10,本发明实施例提供的业务调度的装置30的第二可选方案中,所述分割单元302包括:
第一分割子单元3021,用于根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图;
第二分割子单元3022,用于根据所述算子势对所述第一分割子单元3021分割得到的所述第一次分割图进行第二次分割,得到所述分割子图。
可选地,在上述图10对应的第二可选方案的基础上,参阅图11,本发明实施例提供的业务调度的装置30的第三可选方案中,所述第一分割子单元3031包括:
确定子单元30211,用于根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,所述中心算子的算子度至少大于一个与之相连的算子的算子度;
遍历子单元30212,用于以所述确定子单元30211确定的各个所述中心算子作为遍历的起点,逐层遍历除所述中心算子之外的其他算子,直到遍历到除所述中心算子之外的其他中心算子或摇摆算子,所述摇摆算子为以相邻两中心算子为起点遍历时同时被遍历到的算子;
划分子单元30213,用于将从所述中心算子开始,到所述遍历子单元30212遍历到所述其他中心算子或所述摇摆算子之前所遍历到的算子划分到所述第一次分割图。
可选地,在上述图11对应的第三可选方案的基础上,本发明实施例提供的业务调度的装置30的第四可选方案中,所述确定子单元30211,具体用于:
根据所述算子的算子度确定所述流式计算应用图中的核心算子和普通算子,所述核心算子的算子度高于与之连接的算子的算子度,所述普通算子为所述流式计算应用图中除掉所述核心算子之外的算子;
根据所述分割数量,从所述核心算子中确定个数与所述分割数量相同的中心算子,或者,从所述核心算子与所述普通算子的组合中确定个数与所述分割数量相同的中心算子。
可选地,在上述第四可选方案的基础上,本发明实施例提供的业务调度的装置30的第五可选方案中,
所述确定子单元30211,具体用于当所述核心算子的数量不小于所述中心算子的数量时,选择算子度最大的所述分割数量的核心算子作为所述中心算子。
可选地,在上述第四可选方案的基础上,本发明实施例提供的业务调度的装置30的第六可选方案中,
所述确定子单元30211,具体用于当所述核心算子的数量小于所述中心算子的数量时,选择算子度最大的普通算子作为所述核心算子提供不足部分的所述中心算子。
可选地,在上述第三、第四、第五、第六可选方案的基础上,本发明实施例提供的业务调度的装置30的第七可选方案中,
所述第二分割子单元,具体用于:
确定所述第一次分割图的图分区势,所述图分区势为所述第一次分割图中算子的算子势的累加和;
根据相邻第一次分割图之间的摇摆算子的算子势和所述相邻第一次分割图的图分区势,确定所述摇摆算子应划入的第一次分割图,得到所述分割子图。
可选地,在上述图8对应的方案,第一至第七可选方案中任一方案的基础上,本发明实施例提供的业务调度的装置30的第八可选方案中,参阅图12,所述装置还包括:第一计算单元305和第一调整单元306,
所述第一计算单元305,用于计算图分区负载,所述图分区负载为所述分割子图中算子的负载之和,根据所述图分区负载计算负载误差值;
所述第一调整单元306,用于在所述第一计算单元305计算的所述负载误差值大于预置的第一检验阀值时,将所述分割子图中的摇摆算子调整到所述负载误差值最小的分割子图中,得到调整后的分割子图;
所述调度单元303,用于将每个所述第一调整单元306调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
可选地,在上述图8对应的方案,第一至第七可选方案中任一方案的基础上,本发明实施例提供的业务调度的装置30的第九可选方案中,参阅图13,所述装置还包括:第二计算单元307和第二调整单元308,
所述第二计算单元307,用于计算图分区网络入流、出流、入度和出度,所述图分区网络入流为所述分割子图中跨物理节点接收数据流的算子的入流,所述图分区网络出流为所述分割子图中跨物理节点发送数据流的算子的出流,所述图分区网络入度为所述分割子图中跨物理节点接收数据流的算子的接收数据流的路数,所述图分区网络出度为所述分割子图中跨物理节点发送数据流的算子的发送数据流的路数,根据所述图分区网络入流、出流、入度和出度,计算流量误差值;
所述第二调整单元308,用于在所述第二计算单元307计算出的所述流量误差值大于预置的第二检验阀值时,将所述分割子图中的摇摆算子调整到所述流量误差值最小的分割子图中,得到调整后的分割子图;
所述调度单元303,用于将每个所述第二调整单元308调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
本发明实施例所提供的业务调度的装置,可以参阅图1至图6中的描述进行理解,本处不做过多赘述。
图14是本发明实施例业务调度的装置30的结构示意图。业务调度的装置30可包括输入设备310、输出设备320、处理器330和存储器340。
本发明实施例提供的业务调度的装置30应用于流计算***,所述流计算***用于调度并处理业务,所述流计算***包括主控节点与多个工作节点;所述主控节点用于将所述业务包含的各个子业务调度到所述多个工作节点进行处理。
存储器340可以包括只读存储器和随机存取存储器,并向处理器330提供指令和数据。存储器340的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器340存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作***:包括各种***程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器330通过调用存储器340存储的操作指令(该操作指令可存储在操作***中),执行如下操作:
获取所述业务的流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑;
根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,所述算子度为所述算子进出流量的流量权值累加和,所述算子势为所述算子在所述流式计算应用图中的负载度;
将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。
本发明实施例中,根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理,可以使业务均衡的得到物理资源和网络资源。提高了物理资源和网络资源的利用率。
处理器330控制业务调度的装置30的操作,处理器330还可以称为CPU(Central Processing Unit,中央处理单元)。存储器340可以包括只读存储器和随机存取存储器,并向处理器330提供指令和数据。存储器340的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,业务调度的装置30的各个组件通过总线***350耦合在一起,其中总线***350除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***350。
上述本发明实施例揭示的方法可以应用于处理器330中,或者由处理器330实现。处理器330可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器330中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器330可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器340,处理器330读取存储器340中的信息,结合其硬件完成上述方法的步骤。
可选地,所述处理器330还用于在对所述流式计算应用图进行分割之前,确定处理所述流式计算应用图所针对的业务所需要的工作节点的个数;根据处理所述业务所需要的工作节点的个数,确定所述分割数量。
可选地,所述处理器330具体用于根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图;根据所述算子势对所述第一次分割图进行第二次分割,得到所述分割子图。
可选地,所述处理器330具体用于:
根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,所述中心算子的算子度至少大于一个与之相连的算子的算子度;
以各个所述中心算子作为遍历的起点,逐层遍历除所述中心算子之外的其他算子,直到遍历到除所述中心算子之外的其他中心算子或摇摆算子,所述摇摆算子为以相邻两中心算子为起点遍历时同时被遍历到的算子;
将从所述中心算子开始,到遍历到所述其他中心算子或所述摇摆算子之前所遍历到的算子划分到所述第一次分割图。
可选地,所述处理器330具体用于:
根据所述算子的算子度确定所述流式计算应用图中的核心算子和普通算子,所述核心算子的算子度高于与之连接的算子的算子度,所述普通算子为所述流式计算应用图中除掉所述核心算子之外的算子;
根据所述分割数量,从所述核心算子中确定个数与所述分割数量相同的中心算子,或者,从所述核心算子与所述普通算子的组合中确定个数与所述分割数量相同的中心算子。
可选地,所述处理器330具体用于当所述核心算子的数量不小于所述中心算子的数量时,选择算子度最大的所述分割数量的核心算子作为所述中心算子。
可选地,所述处理器330具体用于当所述核心算子的数量小于所述中心算子的数量时,选择算子度最大的普通算子作为所述核心算子提供不足部分的所述中心算子。
可选地,所述处理器330具体用于确定所述第一次分割图的图分区势,所述图分区势为所述第一次分割图中算子的算子势的累加和;根据相邻第一次分割图之间的摇摆算子的算子势和所述相邻第一次分割图的图分区势,确定所述摇摆算子应划入的第一次分割图,得到所述分割子图。
可选地,所述处理器330还用于计算图分区负载,所述图分区负载为所述分割子图中算子的负载之和;根据所述图分区负载计算负载误差值;在所述负载误差值大于预置的第一检验阀值时,将所述分割子图中的摇摆算子调整到所述负载误差值最小的分割子图中,得到调整后的分割子图;
所述处理器330具体用于将每个所述调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
可选地,所述处理器330还用于计算图分区网络入流、出流、入度和出度,所述图分区网络入流为所述分割子图中跨物理节点接收数据流的算子的入流,所述图分区网络出流为所述分割子图中跨物理节点发送数据流的算子的出流,所述图分区网络入度为所述分割子图中跨物理节点接收数据流的算子的接收数据流的路数,所述图分区网络出度为所述分割子图中跨物理节点发送数据流的算子的发送数据流的路数;根据所述图分区网络入流、出流、入度和出度,计算流量误差值;在所述流量误差值大于预置的第二检验阀值时,将所述分割子图中的摇摆算子调整到所述流量误差值最小的分割子图中,得到调整后的分割子图;
所述处理器330具体用于将每个所述调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
参阅图15,本发明实施例提供的流计算***,所述流计算***用于调度并处理业务,所述流计算***包括主控节点30与多个工作节点40;所述主控节点30用于将所述业务包含的各个子业务调度到所述多个工作节点40进行处理;
所述主控节点30,用于:
获取所述业务的流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑;
根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,所述算子度为所述算子进出流量的流量权值累加和,所述算子势为所述算子在所述流式计算应用图中的负载度;
将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。
与现有技术中业务部署到流平台上运行时存在资源使用不均衡相比,本发明实施例提供的流计算***,可以使业务均衡的得到物理资源和网络资源。提高了物理资源和网络资源的利用率。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的业务调度的方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (21)

1.一种业务调度的方法,应用于流计算***,所述流计算***用于调度并处理业务,所述流计算***包括主控节点与多个工作节点;所述主控节点用于将所述业务包含的各个子业务调度到所述多个工作节点进行处理,其特征在于,包括:
获取所述业务的流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑;
根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,所述算子度为所述算子进出流量的流量权值累加和,所述算子势为所述算子在所述流式计算应用图中的负载度;
将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割之前,所述方法还包括:
确定处理所述流式计算应用图所针对的业务所需要的工作节点的个数;
根据处理所述业务所需要的工作节点的个数,确定所述分割数量。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,包括:
根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图;
根据所述算子势对所述第一次分割图进行第二次分割,得到所述分割子图。
4.根据权利要求3所述的方法,其特征在于,所述根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图,包括:
根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,所述中心算子的算子度至少大于一个与之相连的算子的算子度;
以各个所述中心算子作为遍历的起点,逐层遍历除所述中心算子之外的其他算子,直到遍历到除所述中心算子之外的其他中心算子或摇摆算子,所述摇摆算子为以相邻两中心算子为起点遍历时同时被遍历到的算子;
将从所述中心算子开始,到遍历到所述其他中心算子或所述摇摆算子之前所遍历到的算子划分到所述第一次分割图。
5.根据权利要求4所述的方法,其特征在于,所述根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,包括:
根据所述算子的算子度确定所述流式计算应用图中的核心算子和普通算子,所述核心算子的算子度高于与之连接的算子的算子度,所述普通算子为所述流式计算应用图中除掉所述核心算子之外的算子;
根据所述分割数量,从所述核心算子中确定个数与所述分割数量相同的中心算子,或者,从所述核心算子与所述普通算子的组合中确定个数与所述分割数量相同的中心算子。
6.根据权利要求5所述的方法,其特征在于,所述从所述核心算子中确定个数与所述分割数量相同的中心算子,包括:
当所述核心算子的数量不小于所述中心算子的数量时,选择算子度最大的所述分割数量的核心算子作为所述中心算子。
7.根据权利要求5所述的方法,其特征在于,所述从所述核心算子与所述普通算子的组合中确定个数与所述分割数量相同的中心算子,包括:
当所述核心算子的数量小于所述中心算子的数量时,选择算子度最大的普通算子作为所述核心算子提供不足部分的所述中心算子。
8.根据权利要求4-7任一所述的方法,其特征在于,所述根据所述算子势对所述第一次分割图进行第二次分割,得到所述分割子图,包括:
确定所述第一次分割图的图分区势,所述图分区势为所述第一次分割图中算子的算子势的累加和;
根据相邻第一次分割图之间的摇摆算子的算子势和所述相邻第一次分割图的图分区势,确定所述摇摆算子应划入的第一次分割图,得到所述分割子图。
9.根据权利要求1-8任一所述的方法,其特征在于,所述方法还包括:
计算图分区负载,所述图分区负载为所述分割子图中算子的负载之和;
根据所述图分区负载计算负载误差值;
在所述负载误差值大于预置的第一检验阀值时,将所述分割子图中的摇摆算子调整到所述负载误差值最小的分割子图中,得到调整后的分割子图;
所述将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理,包括:
将每个所述调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
10.根据权利要求1-8任一所述的方法,其特征在于,所述方法还包括:
计算图分区网络入流、出流、入度和出度,所述图分区网络入流为所述分割子图中跨物理节点接收数据流的算子的入流,所述图分区网络出流为所述分割子图中跨物理节点发送数据流的算子的出流,所述图分区网络入度为所述分割子图中跨物理节点接收数据流的算子的接收数据流的路数,所述图分区网络出度为所述分割子图中跨物理节点发送数据流的算子的发送数据流的路数;
根据所述图分区网络入流、出流、入度和出度,计算流量误差值;
在所述流量误差值大于预置的第二检验阀值时,将所述分割子图中的摇摆算子调整到所述流量误差值最小的分割子图中,得到调整后的分割子图;
所述将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理,包括:
将每个所述调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
11.一种业务调度的装置,应用于流计算***,所述流计算***用于调度并处理业务,所述流计算***包括主控节点与多个工作节点;所述主控节点用于将所述业务包含的各个子业务调度到所述多个工作节点进行处理,其特征在于,包括:
获取单元,用于获取所述业务的流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑;
分割单元,用于根据所述获取单元获取的所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,所述算子度为所述算子进出流量的流量权值累加和,所述算子势为所述算子在所述流式计算应用图中的负载度;
调度单元,用于将每个所述分割单元分割得到的分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
确定单元,用于在所述分割单元对所述流式计算应用图进行分割之前,确定处理所述流式计算应用图所针对的业务所需要的工作节点的个数,根据处理所述业务所需要的工作节点的个数,确定所述分割数量。
13.根据权利要求11或12所述的装置,其特征在于,所述分割单元包括:
第一分割子单元,用于根据所述算子的算子度和所述分割数量,对所述流式计算应用图进行第一次分割,得到第一次分割图;
第二分割子单元,用于根据所述算子势对所述第一分割子单元分割得到的所述第一次分割图进行第二次分割,得到所述分割子图。
14.根据权利要求13所述的装置,其特征在于,所述第一分割子单元包括:
确定子单元,用于根据所述算子的算子度和所述分割数量,确定个数与所述分割数量相同的中心算子,所述中心算子的算子度至少大于一个与之相连的算子的算子度;
遍历子单元,用于以所述确定子单元确定的各个所述中心算子作为遍历的起点,逐层遍历除所述中心算子之外的其他算子,直到遍历到除所述中心算子之外的其他中心算子或摇摆算子,所述摇摆算子为以相邻两中心算子为起点遍历时同时被遍历到的算子;
划分子单元,用于将从所述中心算子开始,到所述遍历子单元遍历到所述其他中心算子或所述摇摆算子之前所遍历到的算子划分到所述第一次分割图。
15.根据权利要求14所述的装置,其特征在于,
所述确定子单元,具体用于:
根据所述算子的算子度确定所述流式计算应用图中的核心算子和普通算子,所述核心算子的算子度高于与之连接的算子的算子度,所述普通算子为所述流式计算应用图中除掉所述核心算子之外的算子;
根据所述分割数量,从所述核心算子中确定个数与所述分割数量相同的中心算子,或者,从所述核心算子与所述普通算子的组合中确定个数与所述分割数量相同的中心算子。
16.根据权利要求15所述的装置,其特征在于,
所述确定子单元,具体用于当所述核心算子的数量不小于所述中心算子的数量时,选择算子度最大的所述分割数量的核心算子作为所述中心算子。
17.根据权利要求15所述的装置,其特征在于,
所述确定子单元,具体用于当所述核心算子的数量小于所述中心算子的数量时,选择算子度最大的普通算子作为所述核心算子提供不足部分的所述中心算子。
18.根据权利要求14-17任一所述的装置,其特征在于,
所述第二分割子单元,具体用于:
确定所述第一次分割图的图分区势,所述图分区势为所述第一次分割图中算子的算子势的累加和;
根据相邻第一次分割图之间的摇摆算子的算子势和所述相邻第一次分割图的图分区势,确定所述摇摆算子应划入的第一次分割图,得到所述分割子图。
19.根据权利要求11-18任一所述的装置,其特征在于,所述装置还包括:第一计算单元和第一调整单元,
所述第一计算单元,用于计算图分区负载,所述图分区负载为所述分割子图中算子的负载之和,根据所述图分区负载计算负载误差值;
所述第一调整单元,用于在所述第一计算单元计算的所述负载误差值大于预置的第一检验阀值时,将所述分割子图中的摇摆算子调整到所述负载误差值最小的分割子图中,得到调整后的分割子图;
所述调度单元,用于将每个所述第一调整单元调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
20.根据权利要求11-18任一所述的装置,其特征在于,所述装置还包括:第二计算单元和第二调整单元,
所述第二计算单元,用于计算图分区网络入流、出流、入度和出度,所述图分区网络入流为所述分割子图中跨物理节点接收数据流的算子的入流,所述图分区网络出流为所述分割子图中跨物理节点发送数据流的算子的出流,所述图分区网络入度为所述分割子图中跨物理节点接收数据流的算子的接收数据流的路数,所述图分区网络出度为所述分割子图中跨物理节点发送数据流的算子的发送数据流的路数,根据所述图分区网络入流、出流、入度和出度,计算流量误差值;
所述第二调整单元,用于在所述第二计算单元计算出的所述流量误差值大于预置的第二检验阀值时,将所述分割子图中的摇摆算子调整到所述流量误差值最小的分割子图中,得到调整后的分割子图;
所述调度单元,用于将每个所述第二调整单元调整后的分割子图中包含的算子对应的子业务,调度到与所述调整后的分割子图对应的工作节点上进行处理。
21.一种流计算***,所述流计算***用于调度并处理业务,所述流计算***包括主控节点与多个工作节点;所述主控节点用于将所述业务包含的各个子业务调度到所述多个工作节点进行处理,其特征在于,
所述主控节点,用于:
获取所述业务的流式计算应用图,所述流式计算应用图为针对所述业务预先建立的包含算子和算子间数据流走向的逻辑关系图,所述流式计算应用图中的算子承载有用于处理所述业务中的与所述算子对应的子业务的计算逻辑;
根据所述流式计算应用图中算子的算子度和算子势,以及对所述流式计算应用图进行分割的分割数量,对所述流式计算应用图进行分割,得到所述分割数量的分割子图,所述算子度为所述算子进出流量的流量权值累加和,所述算子势为所述算子在所述流式计算应用图中的负载度;
将每个所述分割子图中包含的算子对应的子业务,调度到与所述分割子图对应的工作节点上进行处理。
CN201410270392.3A 2014-06-17 2014-06-17 一种业务调度的方法、装置及*** Active CN104052811B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201410270392.3A CN104052811B (zh) 2014-06-17 2014-06-17 一种业务调度的方法、装置及***
PCT/CN2014/094916 WO2015192627A1 (zh) 2014-06-17 2014-12-25 一种业务调度的方法、装置及***
EP14893697.4A EP3001646B1 (en) 2014-06-17 2014-12-25 Service scheduling method, apparatus, and system
US14/982,375 US9990236B2 (en) 2014-06-17 2015-12-29 Dividing a stream computing application graph of a service for scheduling and processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410270392.3A CN104052811B (zh) 2014-06-17 2014-06-17 一种业务调度的方法、装置及***

Publications (2)

Publication Number Publication Date
CN104052811A true CN104052811A (zh) 2014-09-17
CN104052811B CN104052811B (zh) 2018-01-02

Family

ID=51505162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410270392.3A Active CN104052811B (zh) 2014-06-17 2014-06-17 一种业务调度的方法、装置及***

Country Status (4)

Country Link
US (1) US9990236B2 (zh)
EP (1) EP3001646B1 (zh)
CN (1) CN104052811B (zh)
WO (1) WO2015192627A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104504143A (zh) * 2015-01-04 2015-04-08 华为技术有限公司 一种流图优化方法及其装置
CN104683488A (zh) * 2015-03-31 2015-06-03 百度在线网络技术(北京)有限公司 流式计算***及其调度方法和装置
WO2015192627A1 (zh) * 2014-06-17 2015-12-23 华为技术有限公司 一种业务调度的方法、装置及***
CN106547522A (zh) * 2015-09-17 2017-03-29 华为技术有限公司 一种流应用优化的方法及装置
CN106961410A (zh) * 2016-01-08 2017-07-18 阿里巴巴集团控股有限公司 一种异常访问检测方法及装置
CN104331270B (zh) * 2014-10-24 2017-07-21 华为技术有限公司 一种流数据处理的方法、装置及***
CN107463595A (zh) * 2017-05-12 2017-12-12 中国科学院信息工程研究所 一种基于Spark的数据处理方法及***
CN108885563A (zh) * 2016-03-22 2018-11-23 三菱电机株式会社 信息处理***、信息处理装置和信息处理方法
CN109561148A (zh) * 2018-11-30 2019-04-02 湘潭大学 边缘计算网络中基于有向无环图的分布式任务调度方法
CN110851283A (zh) * 2019-11-14 2020-02-28 百度在线网络技术(北京)有限公司 资源处理方法、装置以及电子设备
CN110881058A (zh) * 2018-09-06 2020-03-13 阿里巴巴集团控股有限公司 请求调度方法、装置、服务器及存储介质
CN114091688A (zh) * 2021-11-25 2022-02-25 北京九章云极科技有限公司 一种计算资源获取方法、装置、电子设备和存储介质

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10616316B2 (en) 2016-09-15 2020-04-07 International Business Machines Corporation Processing element host management in a stream computing environment
US10157048B2 (en) * 2017-02-03 2018-12-18 International Business Machines Corporation Splitting operators in a streaming application
US10834177B2 (en) * 2017-05-08 2020-11-10 International Business Machines Corporation System and method for dynamic activation of real-time streaming data overflow paths
CN107480921A (zh) * 2017-06-27 2017-12-15 北京小度信息科技有限公司 订单调度方法及装置
US10673715B2 (en) 2017-07-20 2020-06-02 Servicenow, Inc. Splitting network discovery payloads based on degree of relationships between nodes
US10977089B2 (en) * 2018-04-16 2021-04-13 International Business Machines Corporation Fusing and unfusing operators during a job overlay
US20220043688A1 (en) * 2018-09-11 2022-02-10 Huawei Technologies Co., Ltd. Heterogeneous Scheduling for Sequential Compute Dag
CN110909191A (zh) * 2018-09-18 2020-03-24 北京京东金融科技控股有限公司 图数据处理方法及装置、存储介质、电子设备
JP7211052B2 (ja) * 2018-12-06 2023-01-24 富士通株式会社 ストリーム処理パイプラインの自動生成方法、データストリーム処理プログラムおよびデータストリーム処理システム
CN109726250B (zh) * 2018-12-27 2020-01-17 星环信息科技(上海)有限公司 数据存储***、元数据库同步及数据跨域计算方法
US11068248B2 (en) * 2019-03-11 2021-07-20 International Business Machines Corporation Staggering a stream application's deployment
CN110618870B (zh) * 2019-09-20 2021-11-19 广东浪潮大数据研究有限公司 一种深度学习训练任务的工作方法及装置
CN111259205B (zh) * 2020-01-15 2023-10-20 北京百度网讯科技有限公司 一种图数据库遍历方法、装置、设备及存储介质
US20220188149A1 (en) * 2020-12-15 2022-06-16 International Business Machines Corporation Distributed multi-environment stream computing
US20220300417A1 (en) * 2021-03-19 2022-09-22 Salesforce.Com, Inc. Concurrent computation on data streams using computational graphs
CN113342485A (zh) * 2021-05-19 2021-09-03 中天恒星(上海)科技有限公司 任务调度方法、装置、图形处理器、计算机***及存储介质
CN117077161A (zh) * 2023-07-31 2023-11-17 上海交通大学 基于动态规划求解的隐私保护深度模型构建方法与***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102521051A (zh) * 2011-12-05 2012-06-27 中国联合网络通信集团有限公司 应用于图算法的Map Reduce***中的任务调度方法、装置和***
US8332862B2 (en) * 2009-09-16 2012-12-11 Microsoft Corporation Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution
US8490072B2 (en) * 2009-06-23 2013-07-16 International Business Machines Corporation Partitioning operator flow graphs
CN103631659A (zh) * 2013-12-16 2014-03-12 武汉科技大学 一种片上网络中面向通信能耗的调度优化方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5149840B2 (ja) * 2009-03-03 2013-02-20 株式会社日立製作所 ストリームデータ処理方法、ストリームデータ処理プログラム、および、ストリームデータ処理装置
US8479216B2 (en) 2009-08-18 2013-07-02 International Business Machines Corporation Method for decentralized load distribution in an event-driven system using localized migration between physically connected nodes and load exchange protocol preventing simultaneous migration of plurality of tasks to or from a same node
CN103838627B (zh) * 2014-03-18 2017-05-17 北京工业大学 一种基于工作流吞吐量最大化的工作流调度方法
CN104052811B (zh) * 2014-06-17 2018-01-02 华为技术有限公司 一种业务调度的方法、装置及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8490072B2 (en) * 2009-06-23 2013-07-16 International Business Machines Corporation Partitioning operator flow graphs
US8332862B2 (en) * 2009-09-16 2012-12-11 Microsoft Corporation Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution
CN102521051A (zh) * 2011-12-05 2012-06-27 中国联合网络通信集团有限公司 应用于图算法的Map Reduce***中的任务调度方法、装置和***
CN103631659A (zh) * 2013-12-16 2014-03-12 武汉科技大学 一种片上网络中面向通信能耗的调度优化方法

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015192627A1 (zh) * 2014-06-17 2015-12-23 华为技术有限公司 一种业务调度的方法、装置及***
US9990236B2 (en) 2014-06-17 2018-06-05 Huawei Technologies Co., Ltd. Dividing a stream computing application graph of a service for scheduling and processing
CN104331270B (zh) * 2014-10-24 2017-07-21 华为技术有限公司 一种流数据处理的方法、装置及***
US10613909B2 (en) 2015-01-04 2020-04-07 Huawei Technologies Co., Ltd. Method and apparatus for generating an optimized streaming graph using an adjacency operator combination on at least one streaming subgraph
CN104504143B (zh) * 2015-01-04 2017-12-29 华为技术有限公司 一种流图优化方法及其装置
CN104504143A (zh) * 2015-01-04 2015-04-08 华为技术有限公司 一种流图优化方法及其装置
CN104683488A (zh) * 2015-03-31 2015-06-03 百度在线网络技术(北京)有限公司 流式计算***及其调度方法和装置
CN104683488B (zh) * 2015-03-31 2018-03-30 百度在线网络技术(北京)有限公司 流式计算***及其调度方法和装置
CN106547522B (zh) * 2015-09-17 2020-02-14 华为技术有限公司 一种流应用优化的方法及装置
CN106547522A (zh) * 2015-09-17 2017-03-29 华为技术有限公司 一种流应用优化的方法及装置
CN106961410A (zh) * 2016-01-08 2017-07-18 阿里巴巴集团控股有限公司 一种异常访问检测方法及装置
CN106961410B (zh) * 2016-01-08 2020-02-18 阿里巴巴集团控股有限公司 一种异常访问检测方法及装置
CN108885563A (zh) * 2016-03-22 2018-11-23 三菱电机株式会社 信息处理***、信息处理装置和信息处理方法
CN108885563B (zh) * 2016-03-22 2021-09-14 三菱电机株式会社 信息处理***、信息处理装置和信息处理方法
CN107463595A (zh) * 2017-05-12 2017-12-12 中国科学院信息工程研究所 一种基于Spark的数据处理方法及***
CN110881058A (zh) * 2018-09-06 2020-03-13 阿里巴巴集团控股有限公司 请求调度方法、装置、服务器及存储介质
CN110881058B (zh) * 2018-09-06 2022-04-12 阿里巴巴集团控股有限公司 请求调度方法、装置、服务器及存储介质
CN109561148A (zh) * 2018-11-30 2019-04-02 湘潭大学 边缘计算网络中基于有向无环图的分布式任务调度方法
CN109561148B (zh) * 2018-11-30 2021-03-23 湘潭大学 边缘计算网络中基于有向无环图的分布式任务调度方法
CN110851283A (zh) * 2019-11-14 2020-02-28 百度在线网络技术(北京)有限公司 资源处理方法、装置以及电子设备
CN114091688A (zh) * 2021-11-25 2022-02-25 北京九章云极科技有限公司 一种计算资源获取方法、装置、电子设备和存储介质
WO2023093375A1 (zh) * 2021-11-25 2023-06-01 北京九章云极科技有限公司 一种计算资源获取方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
EP3001646B1 (en) 2018-02-14
EP3001646A4 (en) 2016-08-24
WO2015192627A1 (zh) 2015-12-23
CN104052811B (zh) 2018-01-02
US20160110228A1 (en) 2016-04-21
EP3001646A1 (en) 2016-03-30
US9990236B2 (en) 2018-06-05

Similar Documents

Publication Publication Date Title
CN104052811A (zh) 一种业务调度的方法、装置及***
US11018979B2 (en) System and method for network slicing for service-oriented networks
US10613909B2 (en) Method and apparatus for generating an optimized streaming graph using an adjacency operator combination on at least one streaming subgraph
Naas et al. An extension to ifogsim to enable the design of data placement strategies
CN102281290B (zh) 一种PaaS云平台的仿真***及方法
US9740534B2 (en) System for controlling resources, control pattern generation apparatus, control apparatus, method for controlling resources and program
CN112153700A (zh) 一种网络切片资源管理方法及设备
CN108667657B (zh) 一种面向sdn的基于局部特征信息的虚拟网络映射方法
Draxler et al. Joint optimization of scaling and placement of virtual network services
Hu et al. Throughput optimized scheduler for dispersed computing systems
CN108512672B (zh) 业务编排方法、业务管理方法及装置
CN109189572B (zh) 一种资源预估方法及***、电子设备和存储介质
WO2022222834A1 (zh) 一种数据处理方法以及装置
CN104572182A (zh) 一种流应用的配置方法、节点及流计算***
US20060031444A1 (en) Method for assigning network resources to applications for optimizing performance goals
Ceselli et al. Optimized assignment patterns in Mobile Edge Cloud networks
WO2018166249A1 (zh) 一种网络业务传输的方法及***
CN101495978B (zh) 减少总线连接的消费者和产生者之间的消息流
Cardinaels et al. Job assignment in large-scale service systems with affinity relations
CN113850675A (zh) 用于企业交易关系数据的信息处理方法和装置
CN105335376A (zh) 一种流处理方法、装置及***
WO2013191807A1 (en) Efficient evaluation of network robustness with a graph
CN114584627B (zh) 一种具有网络监控功能的中台调度***及方法
US10417228B2 (en) Apparatus and method for analytical optimization through computational pushdown
WO2017213065A1 (ja) サービス管理システム、サービス管理方法、および、記録媒体

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