CN113986523A - 一种Flink系统资源分配优化方法、系统、设备及介质 - Google Patents
一种Flink系统资源分配优化方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN113986523A CN113986523A CN202111065334.3A CN202111065334A CN113986523A CN 113986523 A CN113986523 A CN 113986523A CN 202111065334 A CN202111065334 A CN 202111065334A CN 113986523 A CN113986523 A CN 113986523A
- Authority
- CN
- China
- Prior art keywords
- task
- slot
- configuration parameters
- executor
- flink
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000013468 resource allocation Methods 0.000 title claims abstract description 28
- 230000015654 memory Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000005457 optimization Methods 0.000 claims description 3
- 239000002699 waste material Substances 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种Flink系统资源分配优化方法,包括:获取用户提交的Slot任务请求,判断Slot任务请求中是否存在用户自定义的配置参数;响应于存在配置参数,判断Flink系统是否满足配置参数的要求;响应于满足配置参数的要求,根据配置参数为Slot任务请求建立Slot任务;响应于Slot任务建立完成,判断Flink系统剩余资源是否满足Slot任务请求的配置参数所需求的资源,响应于满足Slot任务请求的配置参数所需求的资源,将Slot任务分配给任务执行器。通过上述方法,提交任务的时候可以采用默认的资源配置也可以采用自定义的配置使用资源,避免提前预定义过大资源的Slot,运行需求资源小的任务造成的资源浪费。
Description
技术领域
本发明属于计算机云计算领域,具体涉及一种Flink系统资源分配优化方法、系统、设备及介质。
背景技术
Flink作为目前开源社区中唯一集高吞吐、低延迟、高性能三者于一身的分布式流式处理框架,被广泛的用于实时智能推荐、复杂事件处理、实时欺诈监测、实时数仓和ETL、实时报表等应用场景。当前Flink的资源管理方式是粗粒度的,集群会提前预定义好一个任务执行器中Slot的个数,这样每个Slot的资源就成了一个固定值,无论每个任务或者算子需要使用多少资源,都将任务部署到预定义的Slot中,这样的资源管理方式比较简单、易于配置。为了满足资源请求比较大的任务,需要将Slot预定义成比较大的,但是对于资源需求比较小的任务,很明显这种分配方式会造成资源的浪费。
因此,亟需一种可有效解决Flink资源分配不均衡的问题的可行方案。
发明内容
为解决以上问题,本发明提出了一种Flink系统资源分配优化方法、系统、设备及存储介质,其中方法包括:
获取用户提交的Slot任务请求,并判断所述Slot任务请求中是否存在用户自定义的配置参数;
响应于所述Slot任务请求中存在所述配置参数,判断所述Flink系统是否满足所述配置参数的要求;
响应于所述Flink系统满足所述配置参数的要求,根据所述配置参数为所述Slot任务请求建立Slot任务;
响应于所述Slot任务建立完成,判断所述Flink系统剩余资源是否满足所述Slot任务请求的配置参数所需求的资源,响应于所述Flink系统剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给任务执行器进行执行。
在本发明的一些实施方式中,方法还包括:
响应于所述Flink系统剩余资源不满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务挂起并调整所述任务执行器的任务分配。
在本发明的一些实施方式中,调整所述任务执行器的任务分配包括:
选择所述Flink系统中的多个任务执行器中的一个或多个作为待调整任务执行器,并停止向所述待调整任务执行器分配Slot任务。
在本发明的一些实施方式中,调整所述任务执行器的任务分配还包括:
响应于所述待调整任务执行器中的已有Slot任务执行完成,释放所述已有Slot任务的资源,并重新判断所述待调整任务执行器的剩余资源是否满足所述Slot任务请求的配置参数所需求的资源;
响应于所述待调整任务执行器中的剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给所述待调整执行器执行。
在本发明的一些实施方式中,调整所述任务执行器的任务分配还包括:
响应于所述Flink系统中的多个任务执行器中任一个任务执行器的剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述待调整任务执行器调整为普通任务执行器。
在本发明的一些实施方式中,判断所述Flink系统是否满足所述配置参数的要求包括:
任务执行器通过心跳检测的方式向所述Flink系统发送任务执行器的剩余资源;
Flink系统将所述Slot任务请求的配置参数所需求的资源与所述任务执行器发送来的剩余资源进行对比,以判断所述任务执行器发送来的剩余资源是否大于所述Slot任务请求的配置参数所需求的资源。
在本发明的一些实施方式中,方法还包括:
响应于所述Slot任务请求中不存在所述配置参数,按照默认配置为所述Slot任务请求建立Slot任务。
本发明的另一方面还提出了一种Flink系统资源分配优化系统,包括:
解析模块,所述解析模块配置用于获取用户提交的Slot任务请求,并判断所述Slot任务请求中是否存在用户自定义的配置参数;
判断模块,所述判断模块配置用于响应于所述Slot任务请求中存在所述配置参数,判断所述Flink系统是否满足所述配置参数的要求;
任务创建模块,所述任务创建模块配置用于响应于所述Flink系统满足所述配置参数的要求,根据所述配置参数为所述Slot任务请求建立Slot任务;
任务执行模块,所述任务执行模块配置用于响应于所述Slot任务建立完成,判断所述Flink系统剩余资源是否满足所述Slot任务请求的配置参数所需求的资源,响应于所述Flink系统剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给任务执行器进行执行。
本发明的又一方面还提出了一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述实施方式中任意一项所述方法的步骤。
本发明的再一方面还提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
通过本发明提出的一种Flink系统资源分配优化方法,提供一种优化的资源配置方案,用户提交任务的时候可以采用默认的资源配置申请资源,也可以按照任务需要指定任务的资源配置,然后向Flink资源管理器申请资源,资源管理器接收到资源请求后,根据对任务的配置解析,向Slot管理器转发申请特定大小的资源,Slot管理器收到请求后查询任务执行器列表,查找匹配任务资源需求的任务执行器,然后任务执行器按照资源配置大小创建对应的Slot提供给任务使用,等到任务执行完毕,释放对应资源。该优化方案可以更好的利用资源,避免提前预定义过大资源的Slot,运行需求资源小的任务造成的资源浪费。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种Flink系统资源分配优化方法的一实施例的方法流程图;
图2为本发明提供的一种Flink系统资源分配优化系统的实施例的系统结构图;
图3为本发明提供的一种Flink系统资源分配优化方法所实施的计算机设备结构图;
图4为本发明提供的一种Flink系统资源分配优化方法所实施的计算机可读存储介质的示意图;
图5为本发明提供的一种Flink系统资源分配优化方法的Flink系统内部结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
本发明主要应用于Flink系统,对Flink的资源管理方式进行优化,从粗粒度的资源分配到更细粒度的资源分配方式,从提前预定义的资源分配模式到按需分配的资源分配模式。
如图1所示,本发明的第一方面提出了一种Flink系统资源分配优化方法,包括:
步骤S101、获取用户提交的Slot任务请求,并判断所述Slot任务请求中是否存在用户自定义的配置参数;
步骤S102、响应于所述Slot任务请求中存在所述配置参数,判断所述 Flink系统是否满足所述配置参数的要求;
步骤S103、响应于所述Flink系统满足所述配置参数的要求,根据所述配置参数为所述Slot任务请求建立Slot任务;
步骤S104、响应于所述Slot任务建立完成,判断所述Flink系统剩余资源是否满足所述Slot任务请求的配置参数所需求的资源,响应于所述Flink 系统剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot 任务分配给任务执行器进行执行。
在本发明的实施例中,在步骤S101中,本发明所提出的一种Flink系统资源分配优化方法所实现的Flink系统能够支持用户采用默认资源配置或者自定义资源配置向Flink集群提交Slot任务;在本发明的Flink系统中修改了原有用于提交Slot任务的任务提交客户端,增加自定义资源配置参数选项,在用户提交Slot任务时,可根据提交的Slot任务中业务对性能的需要提供所需求的CPU个数、内存容量、磁盘空间等计算机上的计算资源和存储资源。Flink系统会对从客户端发送的数据进行解析,分析客户端发送的Slot任务请求中是否包含了用户对该Slot任务自定义的用于申请计算机处理资源的配置参数。
在步骤S102中,若Flink系统检测到来自客户端的Slot任务请求中包含了用户对该Slot任务运行时的计算机处理资源的配置参数,将判断该Slot 任务所需求的配置参数中的资源是否能被Flink系统满足,具体地,如果某 Slot任务请求要求的CPU数量为8个,内存为32GB,磁盘存储空间为100GB;而Flink系统中,对应的任务执行器(分布在不同的服务器上的Flink系统中的Slot任务的执行器,会向服务器申请相应的处理器、内存及存储资源用以执行Slot任务中的相应的)所在的服务器最大可提供128个CPU、 512GB内存、及2TB硬盘空间;则认为该Slot任务能被Flink系统满足,资源管理器将接受该Slot任务请求。如果该Slot任务请求中的配置参数中的任一项的数值超过Flink系统中最大任务执行器所提供的资源范围,则拒绝接受该Slot任务请求,并返回配置参数超范围信息。即如果Slot任务请求中的配置参数为256个CPU、或768GB内存、或大于2TB的硬盘空间需求中的任意一个超过服务器最大能提供的处理资源,都将拒绝该Slot任务请求。
在步骤S103中,若Slot任务请求的配置参数可以被Flink系统满足,则为其建立Slot任务。同时在建立Slot任务时根据该Slot任务请求中的配置参数对该Slot任务进行配置。
在步骤S104中,若Slot任务建立完成,Flink系统中的资源管理器则将Slot任务发送到Slot管理器,请求Slot管理器对该Slot任务分配对应的执行器。此时Flink系统中的Slot管理器则查找所有所管辖的任务执行器中的剩余资源是否满足该Slot任务的配置需要,如果存在任务执行器的剩余资源满足该Slot任务请求的配置需要,则将该Slot任务分配给该任务执行器,由任务执行器向所在的服务器上申请CPU、内存、存储空间等资源,以执行该Slot任务。
在本发明的一些实施方式中,方法还包括:
响应于所述Flink系统剩余资源不满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务挂起并调整所述任务执行器的任务分配。
在本实施例中,若Flink系统中Slot管理器查找发现,所有的任务执行器的剩余资源(CPU、内存、存储空间等)均没有一个能够满足该Slot任务执行时的需要,则将该Slot任务挂起,停止对该任务的分配,同时调整任务执行器的Slot任务分配模式。
在本发明的一些实施方式中,调整所述任务执行器的任务分配包括:
选择所述Flink系统中的多个任务执行器中的一个或多个作为待调整任务执行器,并停止向所述待调整任务执行器分配Slot任务。
在本实施例中,如上述实施例所述,当存在某Slot任务因任务执行器的剩余资源不足而无法运行该Slot任务,导致该Slot任务挂起时,Flink系统中的Slot管理器则将剩余资源最大的任务执行器设定为待调整任务执行器,并将该待调整任务执行器的Slot任务分配停止,即,将其他Slot任务停止向该待调整任务执行器分配,并等待该任务执行器上的已有Slot任务执行完成并实现资源的释放。
在本发明的一些实施方式中,调整所述任务执行器的任务分配还包括:
响应于所述待调整任务执行器中的已有Slot任务执行完成,释放所述已有Slot任务的资源,并重新判断所述待调整任务执行器的剩余资源是否满足所述Slot任务请求的配置参数所需求的资源;
响应于所述待调整任务执行器中的剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给所述待调整执行器执行。
在本实施例中,若待调整任务执行器中的已有Slot任务执行完成,则释放其所占用的资源,并重新计算该待调整任务执行器的剩余资源。接着,进一步判断该待调整执行器的剩余资源是否满足被挂起的Slot任务,若满足该Slot任务则将该Slot任务分配给该待调整执行器执行。
在本发明的一些实施例中,待调整任务执行器的数量可以同时存在多个,可使用冗余的方式实现。
在本发明的一些实施方式中,调整所述任务执行器的任务分配还包括:
响应于所述Flink系统中的多个任务执行器中任一个任务执行器的剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述待调整任务执行器调整为普通任务执行器。
在本实施例中,当Flink系统中因某Slot任务被挂起,并存在多个待调整任务执行器时,如果多个待调整任务执行器中有一个满足该Slot任务,则在将该Slot任务分配给对应的待调整任务执行器之后,将待调整任务执行器设定为普通任务执行器。
在本发明的一些实施方式中,判断所述Flink系统是否满足所述配置参数的要求包括:
任务执行器通过心跳检测的方式向所述Flink系统发送任务执行器的剩余资源;
Flink系统将所述Slot任务请求的配置参数所需求的资源与所述任务执行器发送来的剩余资源进行对比,以判断所述任务执行器发送来的剩余资源是否大于所述Slot任务请求的配置参数所需求的资源。
在本实施例中,在本发明方法所实现的Flink系统中,任务执行器定时向资源管理器发送心跳检测,汇报当前资源剩余状态,资源管理器记录任务执行器的资源状态,并且资源管理器在创建Slot任务之后会将对应的任务执行器的剩余资源状态及Slot任务发送到Slot管理器,Slot任务管理器则从任务执行器对应的剩余资源中判断是否存在对应任务执行器满足Slot 任务的任务执行。
如图5所示,在本发明的一些实施例中,具体实施过程如下:
1)Flink集群启动后,初始化Slot管理器、任务执行器和资源管理器;
2)任务执行器向资源管理器注册自己,并向资源管理器上报默认资源配置,资源管理器收到任务执行器注册信息并完成注册;
3)随后任务执行器定时向资源管理器发送心跳信息,上报其当前已分配的Slot状态,以及当前可用的资源情况;
4)资源管理器向Slot管理器转发任务执行器资源状态;
5)提交任务时,向资源管理器申请资源,资源管理器对任务配置进行判断解析,如果任务没有指定资源配置,则使用任务执行器注册时携带的默认资源配置;如果任务指定了资源配置,则使用任务指定的配置,然后转交Slot管理器创建Slot;
6)Slot管理器在维护的任务执行器列表中查找资源匹配的任务执行器,如果查找成功,则在对应的任务执行器上根据资源配置创建Slot,并将Slot 任务执行,如果没有匹配到任务执行器,则将任务挂起,等待有合适的任务执行器满足资源配置后再次分配执行任务;
7)等到任务执行结束时,释放对应的Slot及其资源。
在本发明的一些实施方式中,方法还包括:
响应于所述Slot任务请求中不存在所述配置参数,按照默认配置为所述Slot任务请求建立Slot任务。
如图5所示,在本实施例中,在本发明方法所实现的Flink系统中,Flink 系统初始化时,Flink集群启动时,初始化Slot管理器、任务执行器和资源管理器,任务执行器向资源管理器注册,并汇报默认的Slot资源配置;任务执行器定时向资源管理器发送心跳,上报当前已分配的Slot状态和当前可用的资源情况;用户向Flink系统提交任务,提交任务的时候可以指定申请的Slot资源配置,如果没有指定将采用默认的资源配置向资源管理器申请资源,如果指定了则将采用指定的资源配置向资源管理器申请资源,如果Slot任务请求中没有用户自定义的配置参数,Flink系统中的资源管理器将根据任务执行器注册时汇报的默认的Slot资源配置为该Slot任务请求建立Slot任务;资源管理器收到资源申请后,对任务的资源配置进行解析,如果任务没有指定Slot配置,就使用默认的Slot资源配置交由Slot管理器创建Slot。
如图2所示,本发明的另一方面还提出了一种Flink系统资源分配优化系统,包括:
解析模块1,所述解析模块1配置用于获取用户提交的Slot任务请求,并判断所述Slot任务请求中是否存在用户自定义的配置参数;
判断模块2,所述判断模块2配置用于响应于所述Slot任务请求中存在所述配置参数,判断所述Flink系统是否满足所述配置参数的要求;
任务创建模块3,所述任务创建模块3配置用于响应于所述Flink系统满足所述配置参数的要求,根据所述配置参数为所述Slot任务请求建立Slot 任务;
任务执行模块4,所述任务执行模块4配置用于响应于所述Slot任务建立完成,判断所述Flink系统剩余资源是否满足所述Slot任务请求的配置参数所需求的资源,响应于所述Flink系统剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给任务执行器进行执行。
如图3所示,本发明的又一方面还提出了一种计算机设备,包括:
至少一个处理器21;以及
存储器22,所述存储器22存储有可在所述处理器21上运行的计算机指令,所述指令由所述处理器21执行时实现如下的方法的步骤:
获取用户提交的Slot任务请求,并判断所述Slot任务请求中是否存在用户自定义的配置参数;
响应于所述Slot任务请求中存在所述配置参数,判断所述Flink系统是否满足所述配置参数的要求;
响应于所述Flink系统满足所述配置参数的要求,根据所述配置参数为所述Slot任务请求建立Slot任务;
响应于所述Slot任务建立完成,判断所述Flink系统剩余资源是否满足所述Slot任务请求的配置参数所需求的资源,响应于所述Flink系统剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给任务执行器进行执行。
在本发明的一些实施方式中,方法还包括:
响应于所述Flink系统剩余资源不满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务挂起并调整所述任务执行器的任务分配。
在本发明的一些实施方式中,调整所述任务执行器的任务分配包括:
选择所述Flink系统中的多个任务执行器中的一个或多个作为待调整任务执行器,并停止向所述待调整任务执行器分配Slot任务。
在本发明的一些实施方式中,调整所述任务执行器的任务分配还包括:
响应于所述待调整任务执行器中的已有Slot任务执行完成,释放所述已有Slot任务的资源,并重新判断所述待调整任务执行器的剩余资源是否满足所述Slot任务请求的配置参数所需求的资源;
响应于所述待调整任务执行器中的剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给所述待调整执行器执行。
在本发明的一些实施方式中,调整所述任务执行器的任务分配,还包括:
响应于所述Flink系统中的多个任务执行器中任一个任务执行器的剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述待调整任务执行器调整为普通任务执行器。
在本发明的一些实施方式中,判断所述Flink系统是否满足所述配置参数的要求包括:
任务执行器通过心跳检测的方式向所述Flink系统发送任务执行器的剩余资源;
Flink系统将所述Slot任务请求的配置参数所需求的资源与所述任务执行器发送来的剩余资源进行对比,以判断所述任务执行器发送来的剩余资源是否大于所述Slot任务请求的配置参数所需求的资源。
在本发明的一些实施方式中,方法还包括:
响应于所述Slot任务请求中不存在所述配置参数,按照默认配置为所述Slot任务请求建立Slot任务。
如图4所示,本发明的再一方面还提出了一种计算机可读存储介质401,所述计算机可读存储介质401存储有计算机程序402,所述计算机程序被处理器执行时实现如下方法方法的步骤:
获取用户提交的Slot任务请求,并判断所述Slot任务请求中是否存在用户自定义的配置参数;
响应于所述Slot任务请求中存在所述配置参数,判断所述Flink系统是否满足所述配置参数的要求;
响应于所述Flink系统满足所述配置参数的要求,根据所述配置参数为所述Slot任务请求建立Slot任务;
响应于所述Slot任务建立完成,判断所述Flink系统剩余资源是否满足所述Slot任务请求的配置参数所需求的资源,响应于所述Flink系统剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给任务执行器进行执行。
在本发明的一些实施方式中,方法还包括:
响应于所述Flink系统剩余资源不满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务挂起并调整所述任务执行器的任务分配。
在本发明的一些实施方式中,调整所述任务执行器的任务分配包括:
选择所述Flink系统中的多个任务执行器中的一个或多个作为待调整任务执行器,并停止向所述待调整任务执行器分配Slot任务。
在本发明的一些实施方式中,调整所述任务执行器的任务分配还包括:
响应于所述待调整任务执行器中的已有Slot任务执行完成,释放所述已有Slot任务的资源,并重新判断所述待调整任务执行器的剩余资源是否满足所述Slot任务请求的配置参数所需求的资源;
响应于所述待调整任务执行器中的剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给所述待调整执行器执行。
在本发明的一些实施方式中,调整所述任务执行器的任务分配还包括:
响应于所述Flink系统中的多个任务执行器中任一个任务执行器的剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述待调整任务执行器调整为普通任务执行器。
在本发明的一些实施方式中,判断所述Flink系统是否满足所述配置参数的要求包括:
任务执行器通过心跳检测的方式向所述Flink系统发送任务执行器的剩余资源;
Flink系统将所述Slot任务请求的配置参数所需求的资源与所述任务执行器发送来的剩余资源进行对比,以判断所述任务执行器发送来的剩余资源是否大于所述Slot任务请求的配置参数所需求的资源。
在本发明的一些实施方式中,方法还包括:
响应于所述Slot任务请求中不存在所述配置参数,按照默认配置为所述Slot任务请求建立Slot任务。
通过本发明提出的一种Flink系统资源分配优化方法,提供了一种优化的资源配置方案,用户提交任务的时候可以采用默认的资源配置申请资源,也可以按照任务需要指定任务的资源配置,然后向Flink资源管理器申请资源,资源管理器接收到资源请求后,根据对任务的配置解析,向Slot管理器转发申请特定大小的资源,Slot管理器收到请求后查询任务执行器列表,查找匹配任务资源需求的任务执行器,然后任务执行器按照资源配置大小创建对应的Slot提供给任务使用,等到任务执行完毕,释放对应资源。该优化方案可以更好的利用资源,避免提前预定义过大资源的Slot,运行需求资源小的任务造成的资源浪费。
需要特别指出的是,上述各个实施例中的各个组件或步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换形成的组合也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,上述本发明实施例公开的顺序仅仅为了描述,不代表实施例的优劣。但是应当注意,以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子,在不背离权利要求限定的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包括在本发明实施例的保护范围之内。
Claims (10)
1.一种Flink系统资源分配优化方法,其特征在于,包括:
获取用户提交的Slot任务请求,并判断所述Slot任务请求中是否存在用户自定义的配置参数;
响应于所述Slot任务请求中存在所述配置参数,判断所述Flink系统是否满足所述配置参数的要求;
响应于所述Flink系统满足所述配置参数的要求,根据所述配置参数为所述Slot任务请求建立Slot任务;
响应于所述Slot任务建立完成,判断所述Flink系统剩余资源是否满足所述Slot任务请求的配置参数所需求的资源,响应于所述Flink系统剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给任务执行器进行执行。
2.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述Flink系统剩余资源不满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务挂起并调整所述任务执行器的任务分配。
3.根据权利要求2所述的方法,其特征在于,所述调整所述任务执行器的任务分配包括:
选择所述Flink系统中的多个任务执行器中的一个或多个作为待调整任务执行器,并停止向所述待调整任务执行器分配Slot任务。
4.根据权利要求3所述的方法,其特征在于,所述调整所述任务执行器的任务分配还包括:
响应于所述待调整任务执行器中的已有Slot任务执行完成,释放所述已有Slot任务的资源,并重新判断所述待调整任务执行器的剩余资源是否满足所述Slot任务请求的配置参数所需求的资源;
响应于所述待调整任务执行器中的剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给所述待调整执行器执行。
5.根据权利要求3所述的方法,其特征在于,所述调整所述任务执行器的任务分配还包括:
响应于所述Flink系统中的多个任务执行器中任一个任务执行器的剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述待调整任务执行器调整为普通任务执行器。
6.根据权利要求1所述的方法,其特征在于,所述判断所述Flink系统是否满足所述配置参数的要求包括:
任务执行器通过心跳检测的方式向所述Flink系统发送任务执行器的剩余资源;
Flink系统将所述Slot任务请求的配置参数所需求的资源与所述任务执行器发送来的剩余资源进行对比,以判断所述任务执行器发送来的剩余资源是否大于所述Slot任务请求的配置参数所需求的资源。
7.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述Slot任务请求中不存在所述配置参数,按照默认配置为所述Slot任务请求建立Slot任务。
8.一种Flink系统资源分配优化系统,其特征在于,包括:
解析模块,所述解析模块配置用于获取用户提交的Slot任务请求,并判断所述Slot任务请求中是否存在用户自定义的配置参数;
判断模块,所述判断模块配置用于响应于所述Slot任务请求中存在所述配置参数,判断所述Flink系统是否满足所述配置参数的要求;
任务创建模块,所述任务创建模块配置用于响应于所述Flink系统满足所述配置参数的要求,根据所述配置参数为所述Slot任务请求建立Slot任务;
任务执行模块,所述任务执行模块配置用于响应于所述Slot任务建立完成,判断所述Flink系统剩余资源是否满足所述Slot任务请求的配置参数所需求的资源,响应于所述Flink系统剩余资源满足所述Slot任务请求的配置参数所需求的资源,将所述Slot任务分配给任务执行器进行执行。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-7任意一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111065334.3A CN113986523A (zh) | 2021-09-12 | 2021-09-12 | 一种Flink系统资源分配优化方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111065334.3A CN113986523A (zh) | 2021-09-12 | 2021-09-12 | 一种Flink系统资源分配优化方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113986523A true CN113986523A (zh) | 2022-01-28 |
Family
ID=79735637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111065334.3A Pending CN113986523A (zh) | 2021-09-12 | 2021-09-12 | 一种Flink系统资源分配优化方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113986523A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234711A (zh) * | 2023-09-05 | 2023-12-15 | 合芯科技(苏州)有限公司 | Flink系统资源动态分配方法、系统、设备及介质 |
-
2021
- 2021-09-12 CN CN202111065334.3A patent/CN113986523A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117234711A (zh) * | 2023-09-05 | 2023-12-15 | 合芯科技(苏州)有限公司 | Flink系统资源动态分配方法、系统、设备及介质 |
CN117234711B (zh) * | 2023-09-05 | 2024-05-07 | 合芯科技(苏州)有限公司 | Flink系统资源动态分配方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11431794B2 (en) | Service deployment method and function management platform under serverless architecture | |
WO2020253347A1 (zh) | 一种容器集群管理方法、装置及系统 | |
US10334034B2 (en) | Virtual machine live migration method, virtual machine deployment method, server, and cluster system | |
US11252220B2 (en) | Distributed code execution involving a serverless computing infrastructure | |
CA3000422C (en) | Workflow service using state transfer | |
US7587492B2 (en) | Dynamic performance management for virtual servers | |
US9104498B2 (en) | Maximizing server utilization within a datacenter | |
EP3567829B1 (en) | Resource management method and apparatus | |
US7996525B2 (en) | Systems and methods for dynamically provisioning cloud computing resources | |
US20200174838A1 (en) | Utilizing accelerators to accelerate data analytic workloads in disaggregated systems | |
US10284489B1 (en) | Scalable and secure interconnectivity in server cluster environments | |
US9348709B2 (en) | Managing nodes in a distributed computing environment | |
CN105049268A (zh) | 分布式计算资源分配系统和任务处理方法 | |
US20230222006A1 (en) | Container Orchestration System | |
CN106302640A (zh) | 数据请求处理方法及装置 | |
US20220070099A1 (en) | Method, electronic device and computer program product of load balancing | |
CN106533961B (zh) | 一种流量控制方法及装置 | |
WO2017107456A1 (zh) | 确定任务消耗资源的方法及装置 | |
US20200272526A1 (en) | Methods and systems for automated scaling of computing clusters | |
WO2021120633A1 (zh) | 一种负载均衡方法及相关设备 | |
US8458702B1 (en) | Method for implementing user space up-calls on java virtual machine before/after garbage collection | |
US20230300086A1 (en) | On-demand resource capacity in a serverless function-as-a-service infrastructure | |
US10348814B1 (en) | Efficient storage reclamation for system components managing storage | |
CN115269193A (zh) | 自动化测试中实现分布式负载均衡的方法及装置 | |
US11144359B1 (en) | Managing sandbox reuse in an on-demand code execution system |
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 |