CN109254842B - 分布式流式系统的资源管理方法、装置及可读存储介质 - Google Patents
分布式流式系统的资源管理方法、装置及可读存储介质 Download PDFInfo
- Publication number
- CN109254842B CN109254842B CN201710564070.3A CN201710564070A CN109254842B CN 109254842 B CN109254842 B CN 109254842B CN 201710564070 A CN201710564070 A CN 201710564070A CN 109254842 B CN109254842 B CN 109254842B
- Authority
- CN
- China
- Prior art keywords
- task
- machine
- resource
- machines
- parameter
- 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
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种分布式流式系统的资源管理方法,包括:接收第一客户端发送的任务信息,其中,所述任务信息包括:目标任务的任务拓扑及配置文件,所述任务拓扑包括多个任务节点,所述配置文件包括所述多个任务节点中每个任务节点的资源需求参数;获取所述分布式流式系统的多台机器中每台机器的资源参数,所述多台机器用以执行所述目标任务;根据所述多台机器的资源参数、所述多个任务节点的资源需求参数,确定分配给所述多个任务节点中每个任务节点的机器,以使所述目标集群执行所述目标任务。本申请还公开了相应的装置及存储介质。
Description
技术领域
本申请涉及流式计算的数据处理技术领域,尤其涉及分布式流式系统的资源管理方法、装置及可读存储介质。
背景技术
近些年来,随着互联网技术的发展,现代社会进入了大数据时代。社会上产生的数据量越来越大,导致计算机系统需要处理的数据量也日益增加。因此,对大数据的高效处理成为人们普遍关注的问题。一般而言,对于大数据,分治法是一个比较有效的解决方法。这种算法把单一的计算任务分配到不同的计算机上进行,这类算法的典型代表有批处理计算模型、流式计算模型等。
流式计算模型有Esper、Streambase、HStreaming和YahooS4等,其中的典型代表是Twitter开源系统Storm,一个针对在线业务而存在的计算平台。Storm提供了一组通用原语,可用于实时处理消息并更新数据库;也可以被用来做“连续计算”,对数据流做连续查询,在计算时就将结果以流的形式输出给用户;还可以被用于“分布式RPC”,以并行的方式运行昂贵的运算。
发明内容
本申请实例提供了一种分布式流式系统的资源管理方法,其特征在于,包括:
接收第一客户端发送的任务信息,其中,所述任务信息包括:目标任务的任务拓扑及配置文件,所述任务拓扑包括多个任务节点,所述配置文件包括所述多个任务节点中每个任务节点的资源需求参数;
获取所述分布式流式系统的多台机器中每台机器的资源参数,所述多台机器用以执行所述目标任务;
根据所述多台机器的资源参数、所述多个任务节点的资源需求参数,确定分配给所述多个任务节点中每个任务节点的机器,以使所述目标集群执行所述目标任务。
本申请实例还提供了一种分布式流式系统的资源管理装置,包括:
接收单元,用于接收第一客户端发送的任务信息,其中,所述任务信息包括:目标任务的任务拓扑及配置文件,所述任务拓扑包括多个任务节点,所述配置文件包括所述多个任务节点中每个任务节点的资源需求参数;
资源参数确定单元,用于获取所述分布式流式系统的多台机器中每台机器的资源参数,所述多台机器用以执行所述目标任务;
资源分配单元,用于根据所述多台机器的资源参数、所述多个任务节点的资源需求参数,确定分配给所述多个任务节点中每个任务节点的机器,以使所述目标集群执行所述目标任务。
本申请实例还提供一种计算机可读存储介质,存储有计算机可读指令,可以使至少一个处理器执行上述所述的方法。
采用本申请提供的上述方案,能够更好地进行资源分配。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是是本申请实例涉及的系统构架图;
图2是本申请一实例分布式流式系统的资源管理方法的流程图;
图3A是本申请一实例用户提交任务拓扑的界面图;
图3B是本申请另一实例用户提交任务拓扑的界面图;
图4是本申请一实例排序中的任务节点示意图;
图5是本申请一实例排序中的机器的示意图;
图6是本申请一实例为任务节点分配执行其机器的方法流程图;
图7是本申请一实例具体为任务节点分配机器的示意图;
图8是本申请一实例分布式流式系统资源管理装置的结构示意图;以及
图9为本申请实例中的计算设备组成结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请提出了一种分布式流式系统的资源管理方法及装置,该方法可应用于图1所示的系统构架中,该系统架构包括:主控节点101、通信节点102、多个执行控制模块103以及与每一个执行控制模块103对应的执行节点104。其中,主控节点101负责资源分配和任务调度,用于向各执行节点104分配任务拓扑中的任务节点,分配工作代码、布置任务以及工作检测等。执行节点104用来执行任务拓扑中的一个或多个任务节点的任务,具体执行哪几个任务节点的任务,由主控节点来分配。执行节点在执行任务节点的任务时,具体地,由目标集群中一台机器来执行,一个执行节点对应一台机器,一台机器对应一个执行控制模块103。一台机器可以负责任务拓扑中的多个任务节点。执行控制模块103接受主控节点分配的任务,启动和停止属于自己管理的机器的进程。主控节点101对所有执行节点104的控制都通过通信节点102进行。例如,当图1所示的系统架构应用在广告的数据计算时,具体地,当应用在根据用户的历史访问数据确定用户兴趣维度的计算时,开发人员将根据用户的历史访问数据确定用户兴趣维度的算法通过编译后形成的任务拓扑提交给分布式流式系统的主控节点101,分布式流式系统的主控节点101接收到任务拓扑后,根据任务拓扑的各个任务节点的所需资源,把各个任务节点分配给能满足其资源需求的执行节点104处的机器,由该执行节点104处的机器执行任务节点的任务。具体计算时,分布式流式系统可以从广告平台处获得用户的历史访问数据,通过分布式流式系统中的各执行节点104处的机器的任务执行,得到计算结果,即得到用户的兴趣维度。分布式流式系统将得到的用户的兴趣维度可以存储在数据库中,以方便广告平台调用,同时也可以直接发送给广告平台。
在一些实例中,主控节点101在执行向每个执行节点104分配执行任务的机器时,预先配置每台机器的任务节点数,在分配时,根据每台机器的任务节点数,分配执行每个任务节点任务的机器。然而该实例只能预估机器能接收的任务节点数,而不知道这些任务节点会带来多少资源消耗。该实例不区分每个任务节点的性能差异,认为每一个任务节点的资源需求是一致的,会出现执行任务节点的任务的机器的性能不一致而接受相同任务量的问题。
为了解决上述技术问题,本申请提出一种分布式流式系统的资源管理方法,应用于图1所示的主控节点101,如图2所示,包括以下步骤:
步骤201:接收第一客户端发送的任务信息,其中,所述任务信息包括:目标任务的任务拓扑及配置文件,所述任务拓扑包括多个任务节点,所述配置文件包括所述多个任务节点中每个任务节点的资源需求参数。
所述第一客户端为浏览器客户端,用户在图3A所示的页面上进行任务信息的提交,该任务信息包括目标任务的任务拓扑及配置文件。用户通过对新提交的任务控件301的操作,输入目标任务的名称;用户通过对开发机控件302的操作,选择目标源码包存放的机器;用户通过对包所在文件控件303的操作,输入目标任务源码包、启动脚本以及配置文件在开发机的存放路径。用户通过对控件304的操作,将任务信息上传,浏览器客户端响应于用户对控件304的操作,将目标任务信息发送给主控节点101,由主控节点101完成将任务拓扑的各任务节点分配给执行节点104处的机器。用户通过对控件305的操作,可以暂停正在上传的任务信息。
所述配置文件包括所述多个任务节点中每个任务节点的资源需求参数。开发人员在编写目标任务的任务拓扑时,评估每个任务节点需要的资源,该资源包括:CPU、内存、网络。例如,当编写的目标任务的任务拓扑存在3个任务节点时,该三个任务节点的资源需求参数为:任务节点1:CPU:20内存:2G网络:30;任务节点2:CPU:30内存:3G网络:30;任务节点3:CPU:50内存:4G网络:30。将评估得到的各任务节点的资源需求参数保存在配置文件中,浏览器客户端将配置文件中的各任务节点的资源需求参数发送给主控节点101。本申请区分每个拓扑节点的资源需求,令实际资源需求更符合事实。
步骤202:获取所述分布式流式系统的多台机器中每台机器的资源参数,所述多台机器用以执行所述目标任务。
主控节点101获取分布式流式系统中每台机器的评估的资源参数。主控节点保存有分布式流式系统中每台机器的评估的资源参数。在该实例中,分布式流式系统中的所有机器都参与任务节点的分配。目标集群中的每台机器的资源参数,包含:CPU、内存、网络,该资源参数为一个相对的参数,例如CUP的种类包括单核、双核双线程、双核四线程、四核八线程,四核四线程等,机器的CPU参数为相对评分,首先找到一个基准,如单核,给单核的CPU一个评分,相对于单核,给双核双线程的CPU一个评分,给双核四线程的CPU一个评分,给四核八线程的CPU一个评分,给四核四线程的CPU一个评分。相对应的,根据一台机器内存的容量对内存进行评分;根据一台机器的网络带宽及时延对机器的网络进行评分。如图5所示。目标集群中每台机器评估的资源参数如下:机器1:CPU:100内存:10G网络:100;机器2:CPU:80内存:8G网络:80;机器3:CPU:120内存:12G网络:120;机器n:…。本申请充分评估机器的CPU、内存、网络资源,使机器的资源可量化,在资源分配时,能提升机器的实际资源使用率,主控节点101中还包括各资源参数的权重,例如CPU参数的权重、内存参数的权重以及网络参数的权重。
步骤203:根据所述多台机器的资源参数、所述多个任务节点的资源需求参数,确定分配给所述多个任务节点中每个任务节点的机器,以使所述目标集群执行所述目标任务。
主控节点101在向目标集群中的每台机器分配任务拓扑的任务节点时,将任务节点分配到能满足其资源需求参数的执行节点104处的机器,按机器顺序分配,逐个判断,如果一台机器能满足一个任务节点的资源需要参数,则将该任务节点分配该机器,否则跳转到下一台机器。
采用本申请提供的分布式流式系统的资源管理方法,基于每台机器都是有差异的,各机器的CPU、内存、网络都可能存在客观的差异,以及每个任务节点的资源需求也都是有差异的。在提交任务拓扑之前,将每个任务节点的资源需求参数进行评估,将评估得到的每个任务节点的资源需求参数保存在配置文件中,在提交任务信息时,将配置文件发送给分布式流式系统的主控节点101。主控节点101根据分布式流式系统中每台机器的资源参数、每个任务节点的资源需求参数,给任务节点分配执行其任务的机器,使得资源分配更加合理,同时提高了机器的资源使用率。
在图2所示的实例中,分布式流式系统中的每一台机器都参与任务节点的分配,在该实例中,分布式流式系统根据性能将机器分为不同的集群,用户可以根据新提交的任务的性能需求,选择不同的集群。具体地,该实例包括以下步骤:
S101:所述任务信息还包括目标集群的标识,所述获取所述分布式流式系统的多台机器中每台机器的资源参数包括:根据所述目标集群的标识确定目标集群,该目标集群包括执行所述目标任务的多台机器,获取所述多台机器中每台机器的资源参数。
所述第一客户端为浏览器客户端,用户在图3B所示的页面上进行任务信息的提交,在该页面中还包括操作集群控件306,用户通过对操作集群控件306的操作,选择执行目标任务的目标集群标识。用户在选择目标集群的标识时,可以根据新提交的目标任务的性能需求选择对应的目标集群的目标集群标识,例如CPU密集型任务可以选择对应的CPU密集型的目标集群。获取该操作集群中每一台机器的资源参数,具体地,当用户新建一个目标集群时,将目标集群中各台机器的评估的资源参数上传给主控节点,在主控节点101中保存有目标集群中各台机器评估的资源参数。
在一些实例中,本申请提供的分布式流式系统的资源管理方法,在步骤203中,在执行所述根据所述多台机器的资源参数、所述多个任务节点的资源需求参数,确定分配给所述多个任务节点中每个任务节点的机器时,包括以下步骤:
S201:根据所述资源参数对所述多台机器进行排序;
S202:根据所述任务拓扑确定所述多个任务节点的数据流顺序,根据所述数据流顺序对所述多个任务节点进行排序;
S203:依次对排序中的每一个任务节点执行如下操作:
遍历排序中的各机器,直到为当前任务节点分配了一个机器,其中,当所述当前任务节点的资源需求参数能被当前机器的资源参数满足时,将所述当前任务节点分配给所述当前机器,更新所述当前机器的资源参数。
具体地,如图6所示,包括以下步骤:
步骤601:根据所述资源参数对所述多台机器进行排序。
目标集群中多台机器的资源参数包括CPU参数、内存参数及网络参数,综合考虑一台机器的CPU参数、内存参数及网络参数,对机器进行排序。如图5形成的机器排序。
步骤602:根据所述任务拓扑确定所述多个任务节点的数据流顺序,根据所述数据流顺序对所述多个任务节点进行排序。
根据编写的任务拓扑在实际计算时的数据流流经各个任务节点的顺序,确定任务节点的顺序。例如任务拓扑包括任务节点1、任务节点2及任务节点3,当进行数据计算时,数据流经任务节点1、任务节点2及任务节点3的顺序为任务节点1、任务节点2及任务节点3,则三个任务节点的顺序为:任务节点1、任务节点2及任务节点3。
步骤603:依次对排序中的第i个任务节点,执行如下步骤604-610。
步骤604:对于排序中的第j台机器,执行如下步骤605-608。
步骤605:判断第j台机器是否能满足第i个任务节点的资源需求参数。当一台机器的CPU参数、内存参数及网络参数都能满足第i个任务节点的资源需求参数时,确定该第j台机器能满足该第i个任务节点的资源需求参数,后续执行步骤607,否则执行步骤606。
步骤606:j+1,当第j台机器不满足第i个节点的资源需求参数时,跳转到排序中的下一台机器去判断。后续跳转到步骤604。
步骤607:将该第i个任务节点分配给该第j台机器。
步骤608:更新该j台机器的资源参数。例如第j台机器的资源参数为:CPU 100、内存10G、网络100,第i个任务节点的资源需求参数为:CPU 20、内存2G、网络30,将第i个任务节点分配给第j台机器后,第j台机器的资源参数更新为CPU 80、内存8G、网络70。
步骤609:判断第i个任务节点是否为排序中的最后一个任务节点,当是最后一个任务节点时,资源分配结束。否则执行步骤610:i+1。
步骤610:i+1。跳转到排序中的任一个任务节点,为下一个任务节点分配执行其任务的机器。
步骤611:j=1。机器j的编号初始化为1,即在为下一个任务节点分配执行其任务的机器时,从第一台机器开始遍历。在执行步骤610后,跳转到步骤603。
例如如图4所示的排序中的任务节点以及图5所示的排序中的机器,具体的分配流程如图7所示:
1.对任务节点1进行资源分配,任务节点1的资源需求参数<=机器1的资源参数,那么拓扑节点1分配到机器1,分配之后更新机器1的剩余资源参数
CPU=100-20=80
内存=10G-2G=8G
网络=100-30=70
2.对任务节点2进行资源分配,任务节点2的资源需求参数<=机器1的资源参数,那么任务节点2分配到机器1,分配之后更新机器1的剩资源参数
CPU=80-30=50
内存=8G-3G=5G
网络=70-30=40
3.对任务节点3进行资源分配,任务节点3的资源需求参数<=机器1的剩余资源,那么任务节点3分配到机器1,分配之后更新机器1的剩余资源参数
CPU=50-40=10
内存=5G-4G=1G
网络=40-30=10
在一些实例中,当任务节点3后还包括任务节点4及任务节点5,任务节点4的资源需求参数为:CPU 20、内存5G、网络10,任务节点5的资源需求参数为CPU 10、内存1G、网络5。在对任务节点4进行资源分配时,机器1不满足任务节点4的资源需求参数,跳转到机器2进行判定,机器2可以满足任务节点4的资源需求参数,将任务节点4分配给机器2。在对任务节点5进行资源分配时,机器1能够满足任务节点5的资源需求参数,则把任务节点5分配给机器1。在该示例中,机器1为CPU高、内存一般,当机器1接受任务节点1、任务节点2及任务节点3后,虽然内存剩余较少,但剩余CPU相对较多,则可以将对CUP要求较高、对内存要求不高的CPU密集型任务节点分配给机器1,从而最大限度地提高机器1的资源利用率。
在一些实例中,所述资源参数包括CPU参数、内存参数及网络参数,所述方法进一步包括以下步骤:
S301:获取CPU参数权重、内存参数权重及网络参数权重。
主控节点101中保存有资源参数的权重,具体包括CPU参数权重、内存参数权重及网络参数权重,在计算机器的性能值时,调取上述保存的CPU参数权重、内存参数权重及网络参数权重。
在上述步骤S201中,在执行所述根据所述资源参数对所述多台机器进行排序时。包括以下步骤:
步骤S302:根据多台机器中每一台机器的CPU参数、内存参数、网络参数,以及所述CPU参数权重、所述内存参数权重及所述网络参数权重,确定每一台机器的性能值。
具体地,可以根据CPU参数权重、内存参数权重及网络参数权重,将每一台机器的CPU参数、内存参数、网络参数进行加权相加,得到每一台机器的性能值。
步骤S303:将所述多台机器按照所述性能值进行排序。
在一些实例中,本申请提供的分布式流式系统的资源管理方法,进一步包括以下步骤:
S401:接收各执行控制模块通过通信节点发送的所述多台机器中每台机器的负载。
各执行控制模块103检测其执行节点104处机器的负载,该负载主要包括CUP使用占比、内存使用占比及网络使用占比,各执行控制模块103将检测到的机器的负载通过通信节点102发送给主控节点101。
S402:根据所述每台机器的负载对所述多台机器的排序进行调整。
主控节点101根据每台机器的负载对多台机器的排序进行调节,所述多台机器的排序是按照所述多台机器的性能值进行排序的,在得到各台机器的负载后,根据各台机器的负载对所述排序进行调整,例如,将负载最大的机器排在最后,将负载最小的机器排在最前。机器的排序在任务节点的资源分配完成之后不再变化,目标机器中机器的排序的调整可以用于其他任务拓扑的资源分配中。
在一些实例中,本申请提供的分布式流式系统的资源管理方法,还可以通过运维人员对机器的排序进行调整,所述方法进一步包括以下步骤:
步骤S501:接收各执行控制模块通过通信节点发送的所述多台机器中每台机器的负载,并将检测到的所述多台机器的负载发送给第二客户端。
各执行控制模块103检测其执行节点104处机器的负载,该负载主要包括CUP使用占比、内存使用占比及网络使用占比,各执行控制模块103将检测到的机器的负载通过通信节点102发送给主控节点101,主控节点101将其发送给第二客户端,该第二客户端为运维人员使用的客户端,以方便运维人员查看。
步骤S502:接收第二客户端响应于用户根据所述多台机器的负载对排序控件的操作发送的顺序调整消息。
运维人员当发现一些机器的负载过大或者某些机器的负载过于空闲时,可动态调整机器的顺序,让负载过大的机器排到前述机器排序的最后,空闲的机器排在上述机器排序的最前,动态调整机器的压力。例如用户在第二客户端上选择排在最后的机器的序号及排在最前面的机器的序号。
步骤S503:根据所述顺序调整消息将所述多台机器的排序进行调整。
主控节点101接收到顺序调整消息后,在上述的通过资源参数进行排序的机器中,根据所述顺序调整消息对按照资源参数排序好的机器进行调整,将顺序调整消息中排序最后的机器序号对应的机器排在最后,将将顺序调整消息中排序最前的机器序号对应的机器排在最前。机器的排序在任务节点的资源分配完成之后不再变化,目标机器中机器的排序的调整可以用于其他任务拓扑的资源分配中。
本申请还提供一种分布式流式系统的资源管理装置800,应用于主控节点101,如图8所示,该装置包括:
接收单元801,用于接收第一客户端发送的任务信息,其中,所述任务信息包括:目标任务的任务拓扑及配置文件,所述任务拓扑包括多个任务节点,所述配置文件包括所述多个任务节点中每个任务节点的资源需求参数;
资源参数确定单元802,用于获取所述分布式流式系统的多台机器中每台机器的资源参数,所述多台机器用以执行所述目标任务;
资源分配单元803,用于根据所述多台机器的资源参数、所述多个任务节点的资源需求参数,确定分配给所述多个任务节点中每个任务节点的机器,以使所述目标集群执行所述目标任务。
采用本申请提供的分布式流式系统的资源管理装置,基于每台机器都是有差异的,各机器的CPU、内存、网络都可能存在客观的差异,以及每个任务节点的资源需求也都是有差异的。在提交任务拓扑之前,将每个任务节点的资源需求参数进行评估,将评估得到的每个任务节点的资源需求参数保存在配置文件中,在提交任务信息时,将配置文件发送给分布式流式系统的主控节点101。主控节点101根据分布式流式系统中每台机器的资源参数、每个任务节点的资源需求参数,给任务节点分配执行其任务的机器,使得资源分配更加合理,同时提高了机器的资源使用率。
在一些实例中,所述任务信息还包括目标集群的标识,所述资源参数确定单元802还用于:
根据所述目标集群的标识确定目标集群,该目标集群包括执行所述目标任务的多台机器,获取所述多台机器中每台机器的资源参数。
在一些实例中,所述资源分配单元803用于:
根据所述资源参数对所述多台机器进行排序;
根据所述任务拓扑确定所述多个任务节点的数据流顺序,根据所述数据流顺序对所述多个任务节点进行排序;
依次对排序中的每一个任务节点执行如下操作:
遍历排序中的各机器,直到为当前任务节点分配了一个机器,其中,当所述当前任务节点的资源需求参数能被当前机器的资源参数满足时,将所述当前任务节点分配给所述当前机器,更新所述当前机器的资源参数。
在一些实例中,所述资源参数包括CPU参数、内存参数及网络参数;
所述装置进一步包括权重参数获取单元804,用于获取CPU参数权重、内存参数权重及网络参数权重;
其中,所述资源分配单元803用于:
根据多台机器中每一台机器的CPU参数、内存参数、网络参数,以及所述CPU参数权重、内存参数权重及网络参数权重,确定每一台机器的性能值;
将所述多台机器按照所述性能值进行排序。
在一些实例中,所述装置进一步包括机器顺序调整单元805,用于:
接收各执行控制模块通过通信节点发送的所述多台机器中每台机器的负载,
根据所述每台机器的负载对所述多台机器的排序进行调整。
本申请还提供一种计算机可读存储介质,存储有计算机可读指令,可以使至少一个处理器执行上述所述的方法。
图9示出了分布式流式系统的资源管理装置800所在的计算设备的组成结构图。如图9所示,该计算设备包括一个或者多个处理器(CPU)902、通信模块904、存储器906、用户接口910,以及用于互联这些组件的通信总线908。
处理器902可通过通信模块904接收和发送数据以实现网络通信和/或本地通信。
用户接口910包括一个或多个输出设备912,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口910也包括一个或多个输入设备914,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。
存储器906可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器906存储处理器902可执行的指令集,包括:
操作系统916,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
应用918,包括用于分布式流式系统资源的资源管理的各种应用程序,这种应用程序能够实现上述各实例中的处理流程,比如可以包括分布式流式系统的资源管理装置800中的部分或全部单元或者模块。分布式流式系统的资源管理装置800中的各单元中的至少一个单元可以存储有机器可执行指令。处理器902通过执行存储器906中各单元中至少一个单元中的机器可执行指令,进而能够实现上述各单元或模块中的至少一个模块的功能。
需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。
各实施例中的硬件模块可以以硬件方式或硬件平台加软件的方式实现。上述软件包括机器可读指令,存储在非易失性存储介质中。因此,各实施例也可以体现为软件产品。
各例中,硬件可以由专门的硬件或执行机器可读指令的硬件实现。例如,硬件可以为专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。
另外,本申请的每个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和/或内存)中执行。因此,这样的存储介质也构成了本申请,本申请还提供了一种非易失性存储介质,其中存储有数据处理程序,这种数据处理程序可用于执行本申请上述方法实例中的任何一种实例。
图9模块对应的机器可读指令可以使计算机上操作的操作系统等来完成这里描述的部分或者全部操作。非易失性计算机可读存储介质可以是插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器。安装在扩展板或者扩展单元上的CPU等可以根据指令执行部分和全部实际操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (8)
1.一种分布式流式系统的资源管理方法,其特征在于,包括:
接收第一客户端发送的任务信息,其中,所述任务信息包括:目标任务的包含多个任务节点的任务拓扑及包含每个任务节点的资源需求参数的配置文件,每个任务节点的资源需求参数包括每个任务节点所需的CPU、内存和网络;
获取所述分布式流式系统的多台机器中每台机器的资源参数,所述每台机器的资源参数包括每台机器的CPU参数、内存参数及网络参数;
获取CPU参数权重、内存参数权重及网络参数权重;
根据每台机器的CPU参数、内存参数、网络参数,以及所述CPU参数权重、所述内存参数权重及所述网络参数权重,确定每台机器的性能值;
将所述多台机器按照所述性能值进行排序;
根据所述任务拓扑确定所述多个任务节点的数据流顺序,根据所述数据流顺序对所述多个任务节点进行排序;
根据所述多个任务节点的排序,依次对以数据流顺序排序中的每一个任务节点执行如下操作:从所述多台机器的排序中的第一台机器开始,遍历所述多台机器的以性能值排序中的各机器,直到为当前任务节点分配了一个机器,其中,当所述当前任务节点的资源需求参数能被当前第j台机器的资源参数满足时,将所述当前任务节点分配给所述当前第j台机器,更新所述当前第j台机器的资源参数,将j初始化为1,使得在为下一个任务节点分配执行其任务的机器时,从第一台机器开始遍历;
在所述任务拓扑中的各任务节点的资源分配完成之后,根据更新后各机器的资源参数,更新各机器的性能值,并根据更新后各机器的性能值调整多台机器的排序,以用于其他任务拓扑的资源分配。
2.根据权利要求1所述的方法,所述任务信息还包括目标集群的标识,所述获取所述分布式流式系统的多台机器中每台机器的资源参数包括:
根据所述目标集群的标识确定目标集群,该目标集群包括执行所述目标任务的多台机器,获取所述多台机器中每台机器的资源参数。
3.根据权利要求1所述的方法,进一步包括:
接收各执行控制模块通过通信节点发送的所述多台机器中每台机器的负载;
根据所述每台机器的负载对所述多台机器的排序进行调整。
4.一种分布式流式系统的资源管理装置,其特征在于,包括:
接收单元,用于接收第一客户端发送的任务信息,其中,所述任务信息包括:目标任务的包含多个任务节点的任务拓扑及包含每个任务节点的资源需求参数的配置文件,每个任务节点的资源需求参数包括每个任务节点所需的CPU、内存和网络;
资源参数确定单元,用于获取所述分布式流式系统的多台机器中每台机器的资源参数;
资源分配单元,用于根据所述资源参数对所述多台机器进行排序,所述每台机器的资源参数包括每台机器的CPU参数、内存参数及网络参数;
获取CPU参数权重、内存参数权重及网络参数权重;
根据每台机器的CPU参数、内存参数、网络参数,以及所述CPU参数权重、所述内存参数权重及所述网络参数权重,确定每台机器的性能值;
将所述多台机器按照所述性能值进行排序;
根据所述多个任务节点的排序,依次对以数据流顺序排序中的每一个任务节点执行如下操作:从所述多台机器的排序中的第一台机器开始,遍历所述多台机器的以性能值排序中的各机器,直到为当前任务节点分配了一个机器,其中,当所述当前任务节点的资源需求参数能被当前第j台机器的资源参数满足时,将所述当前任务节点分配给所述当前第j台机器,更新所述当前第j台机器的资源参数,将j初始化为1,使得在为下一个任务节点分配执行其任务的机器时,从第一台机器开始遍历;
在所述任务拓扑中的各任务节点的资源分配完成之后,根据更新后各机器的资源参数,更新各机器的性能值,并根据更新后各机器的性能值调整多台机器的排序,以用于其他任务拓扑的资源分配。
5.根据权利要求4所述的装置,所述任务信息还包括目标集群的标识,所述资源参数确定单元还用于:
根据所述目标集群的标识确定目标集群,该目标集群包括执行所述目标任务的多台机器,获取所述多台机器中每台机器的资源参数。
6.根据权利要求4所述的装置,进一步包括机器顺序调整单元,用于:
接收各执行控制模块通过通信节点发送的所述多台机器中每台机器的负载,
根据所述每台机器的负载对所述多台机器的排序进行调整。
7.一种计算机可读存储介质,其特征在于:存储有计算机可读指令,可以使至少一个处理器执行如权利要求1-3中任一项所述的方法。
8.一种电子设备,其特征在于,包括:
存储器,存储有计算机可读指令;
处理器;所述计算机可读指令当被所述处理器执行时,使得所述处理器执行如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710564070.3A CN109254842B (zh) | 2017-07-12 | 2017-07-12 | 分布式流式系统的资源管理方法、装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710564070.3A CN109254842B (zh) | 2017-07-12 | 2017-07-12 | 分布式流式系统的资源管理方法、装置及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109254842A CN109254842A (zh) | 2019-01-22 |
CN109254842B true CN109254842B (zh) | 2023-06-16 |
Family
ID=65051014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710564070.3A Active CN109254842B (zh) | 2017-07-12 | 2017-07-12 | 分布式流式系统的资源管理方法、装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109254842B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109903178B (zh) * | 2019-04-04 | 2021-08-20 | 腾讯科技(深圳)有限公司 | 一种确定共同社交对象的方法、装置、系统及计算设备 |
CN110018830A (zh) * | 2019-04-04 | 2019-07-16 | 航天云网科技发展有限责任公司 | 一种基于分布式集群的大型软件编译装置 |
CN110008028B (zh) * | 2019-04-10 | 2021-08-06 | 北京旷视科技有限公司 | 计算资源分配方法、装置、计算机设备和存储介质 |
CN110113387A (zh) * | 2019-04-17 | 2019-08-09 | 深圳前海微众银行股份有限公司 | 一种基于分布式批量处理系统的处理方法、装置及系统 |
CN110908806A (zh) * | 2019-12-02 | 2020-03-24 | 北京蜜莱坞网络科技有限公司 | 一种混流任务的管理方法、装置、设备和存储介质 |
CN111225050B (zh) * | 2020-01-02 | 2022-10-18 | 中国神华能源股份有限公司神朔铁路分公司 | 云计算资源分配方法及装置 |
CN111190718A (zh) * | 2020-01-07 | 2020-05-22 | 第四范式(北京)技术有限公司 | 实现任务调度的方法、装置及系统 |
CN110955529B (zh) * | 2020-02-13 | 2020-10-02 | 北京一流科技有限公司 | 内存资源静态部署系统及方法 |
CN111427660B (zh) * | 2020-03-19 | 2023-07-25 | 北京奇艺世纪科技有限公司 | 上传机调度方法及装置 |
CN113553286A (zh) * | 2020-04-24 | 2021-10-26 | 中科寒武纪科技股份有限公司 | 基于多处理节点来构建通信拓扑结构的方法和设备 |
CN113709298A (zh) * | 2020-05-20 | 2021-11-26 | 华为技术有限公司 | 多终端任务分配方法 |
CN112148445A (zh) * | 2020-09-09 | 2020-12-29 | 倍智智能数据运营有限公司 | 一种基于大数据技术的分布式任务调度方法 |
CN112463390A (zh) * | 2020-12-11 | 2021-03-09 | 厦门市美亚柏科信息股份有限公司 | 一种分布式任务调度方法、装置、终端设备及存储介质 |
CN112995306B (zh) * | 2021-02-05 | 2023-10-20 | 建信金融科技有限责任公司 | 一种基于storm的实时账务信息处理方法及系统 |
CN113238848A (zh) * | 2021-05-27 | 2021-08-10 | 上海商汤科技开发有限公司 | 一种任务调度方法、装置、计算机设备和存储介质 |
CN114756372A (zh) * | 2022-04-28 | 2022-07-15 | 北京百度网讯科技有限公司 | 用于负载均衡的方法、装置、设备和介质 |
CN115242704B (zh) * | 2022-06-22 | 2023-08-11 | 中国电信股份有限公司 | 网络拓扑数据更新方法、装置和电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365713A (zh) * | 2012-04-01 | 2013-10-23 | 华为技术有限公司 | 一种资源的调度和管理方法及装置 |
CN104317650A (zh) * | 2014-10-10 | 2015-01-28 | 北京工业大学 | 一种面向Map/Reduce型海量数据处理平台的作业调度方法 |
CN104915407A (zh) * | 2015-06-03 | 2015-09-16 | 华中科技大学 | 一种基于Hadoop多作业环境下的资源调度方法 |
CN105450684A (zh) * | 2014-08-15 | 2016-03-30 | 中国电信股份有限公司 | 云计算资源调度方法和系统 |
CN106020977A (zh) * | 2016-05-16 | 2016-10-12 | 深圳市中业智能系统控制有限公司 | 用于监控系统的分布式任务调度方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183540A (zh) * | 2015-07-29 | 2015-12-23 | 青岛海尔智能家电科技有限公司 | 一种实时数据流处理的任务分配方法及系统 |
CN105975334A (zh) * | 2016-04-25 | 2016-09-28 | 深圳市永兴元科技有限公司 | 任务分布式调度方法及系统 |
CN106502791B (zh) * | 2016-10-14 | 2019-06-25 | 浪潮电子信息产业股份有限公司 | 一种任务分配方法及装置 |
-
2017
- 2017-07-12 CN CN201710564070.3A patent/CN109254842B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365713A (zh) * | 2012-04-01 | 2013-10-23 | 华为技术有限公司 | 一种资源的调度和管理方法及装置 |
CN105450684A (zh) * | 2014-08-15 | 2016-03-30 | 中国电信股份有限公司 | 云计算资源调度方法和系统 |
CN104317650A (zh) * | 2014-10-10 | 2015-01-28 | 北京工业大学 | 一种面向Map/Reduce型海量数据处理平台的作业调度方法 |
CN104915407A (zh) * | 2015-06-03 | 2015-09-16 | 华中科技大学 | 一种基于Hadoop多作业环境下的资源调度方法 |
CN106020977A (zh) * | 2016-05-16 | 2016-10-12 | 深圳市中业智能系统控制有限公司 | 用于监控系统的分布式任务调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109254842A (zh) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109254842B (zh) | 分布式流式系统的资源管理方法、装置及可读存储介质 | |
CN106919445B (zh) | 一种在集群中并行调度容器的方法和装置 | |
WO2021036936A1 (zh) | 在分布式系统中资源及任务的分配方法、装置及系统 | |
CN112486648A (zh) | 任务调度方法、装置、系统、电子设备和存储介质 | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
CN111694646B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN105900064A (zh) | 调度数据流任务的方法和装置 | |
CN111966484A (zh) | 一种基于深度强化学习的集群资源管理和任务调度方法及系统 | |
US20070250629A1 (en) | Method and a system that enables the calculation of resource requirements for a composite application | |
CN110933178B (zh) | 调整集群系统内的节点配置的方法及服务器 | |
CN113256345B (zh) | 广告投放策略的自定义方法、装置和计算机设备 | |
CN112148468A (zh) | 一种资源调度方法、装置、电子设备及存储介质 | |
CN109818880B (zh) | 动态分派工作及提供资源的方法、装置及其系统 | |
CN109783236B (zh) | 用于输出信息的方法和装置 | |
CN113315672A (zh) | 流量分配方法及装置、电子设备及计算机可读存储介质 | |
CN110912967A (zh) | 一种服务节点调度方法、装置、设备及存储介质 | |
US10313457B2 (en) | Collaborative filtering in directed graph | |
CN112596820A (zh) | 一种资源加载方法、装置、设备以及存储介质 | |
US11726758B2 (en) | Efficient scaling of a container-based application in a distributed computing system | |
Garg et al. | Optimal virtual machine scheduling in virtualized cloud environment using VIKOR method | |
CN114090201A (zh) | 资源调度方法、装置、设备及存储介质 | |
CN114880079A (zh) | 基于强化学习的Kubernetes集群规模调整方法、系统及设备 | |
CN117579626B (zh) | 基于分布式实现边缘计算下的优化方法及系统 | |
CN111459651B (zh) | 一种负载均衡方法、装置、存储介质及调度系统 | |
CN112596901A (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 |