CN114579309A - 一种数据处理方法和装置 - Google Patents
一种数据处理方法和装置 Download PDFInfo
- Publication number
- CN114579309A CN114579309A CN202210208905.2A CN202210208905A CN114579309A CN 114579309 A CN114579309 A CN 114579309A CN 202210208905 A CN202210208905 A CN 202210208905A CN 114579309 A CN114579309 A CN 114579309A
- Authority
- CN
- China
- Prior art keywords
- operator
- processing
- utilization rate
- parallelism
- preset
- 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
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/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)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种数据处理方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:接入实时数据流,检测逻辑处理算子所依赖的每个机器的资源使用率,得到资源总使用率;比对资源总使用率和预设使用率范围,使用与比对结果对应的处理策略,调整逻辑处理算子所依赖的每个机器的并行度;利用调整并行度后的逻辑处理算子处理所述实时数据流,将处理结果传输给下一个逻辑处理算子进行再处理,重复上述并行度调整和处理数据过程,直至无逻辑处理算子为止,得到总处理结果。该实施方式随着数据量级的大小和处理速度,自动化调整算子使用资源的并行度,无需数据开发人员调整。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法和装置。
背景技术
在大数据开发技术领域,实时计算使用场景愈发广泛,诸如实时商品推荐、实时决策、实时匹配等现实场景。实时计算引擎如Strom、SparkStreaming、Flink相继出现,其中Flink的优势较为突出。Flink是分布式的,任务使用的计算资源量由各个算子以及共享链策略决定。
如何使用最少的资源完成实时计算任务,这是需要探究的问题。目前实时计算开发人员通常都是事先预估数据量的量级后,结合代码逻辑以及之前积累的项目经验,来制定各个算子的并行度以及共享链策略,启动任务后策略生效,任务运行期间策略不再改变。
在实现本发明的过程中,发明人发现现有技术至少存在如下问题:制定合理的算子并行度和共享链策略较难,需要开发人员多次调整;应对数据高峰段和低谷段效果有待提高;资源持续占用,不会自动释放多余资源。
发明内容
有鉴于此,本发明实施例提供一种数据处理方法和装置,至少能够解决现有技术中制定合理的算子并行度和共享链策略较难、应对数据高峰段和低谷段效果有待提高、资源未合理使用的现象。
为实现上述目的,根据本发明实施例的一个方面,提供了一种数据处理方法,包括:
接入实时数据流,检测逻辑处理算子所依赖的每个机器的资源使用率,得到资源总使用率;
比对资源总使用率和预设使用率范围,使用与比对结果对应的处理策略,调整逻辑处理算子所依赖的每个机器的并行度;
利用调整并行度后的逻辑处理算子处理所述实时数据流,将处理结果传输给下一个逻辑处理算子进行再处理,重复上述并行度调整和处理数据过程,直至无逻辑处理算子为止,得到总处理结果。
可选的,所述得到资源总使用率,包括:
确定资源使用率最高的第一预设数量个机器并取平均,得到资源总使用率;其中,各机器的处理逻辑相同。
可选的,资源包括CPU和内存,所述预设使用率范围大于等于第一阈值且小于第二阈值;
所述比对资源总使用率和预设使用率范围,使用与比对结果对应的处理策略,调整逻辑处理算子所依赖的每个机器的并行度,包括:
在CPU使用率小于第一阈值的情况下,若内存使用率小于第二阈值,则对算子降低第二预设数量个并行度,否则减小算子的槽配置比;其中,配置比为CPU配置量/内存配置量;
在CPU使用率位于预设使用率范围内的情况下,若内存使用率小于第一阈值,则对算子降低第二预设数量个并行度,若大于或等于第二阈值,则对算子增加第三预设数量个并行度,否则不做处理;
在CPU使用率大于或等于第二阈值的情况下,若内存使用率大于或等于第一阈值,则对算子增加第三预设数量个并行度,否则增大算子的槽配置比。
可选的,所述使用与比对结果对应的处理策略,调整逻辑处理算子所依赖的每个机器的并行度,包括:
若处理策略为减小算子的槽配置比,则对算子下所有机器的槽配置比进行减小处理;或
若处理策略为增大算子的槽配置比,则对算子下所有机器的槽配置比进行增大处理;或
若处理策略为降低第二预设数量个并行度、或增加第三预设数量个并行度,则将处理策略、算子下当前的机器数量和并行度数量,一同反馈给任务资源管理器,使得任务资源管理器重新调整算子下的机器数量和每个机器下的并行度数量。
可选的,还包括:
若处理策略为对算子降低第二预设数量个并行度、或增大算子的槽配置比,则将腾出的资源释放给共享集群;或
若处理策略为对算子增加第三预设数量个并行度、或减小算子的槽配置比,则从共享集群中拉取资源。
可选的,还包括:判断当前的资源占用数是否达到预设资源占用上限值,若达到,则停止从共享集群中拉取资源。
为实现上述目的,根据本发明实施例的另一方面,提供了一种数据处理装置,包括:
检测模块,用于接入实时数据流,检测逻辑处理算子所依赖的每个机器的资源使用率,得到资源总使用率;
调整模块,用于比对资源总使用率和预设使用率范围,使用与比对结果对应的处理策略,调整逻辑处理算子所依赖的每个机器的并行度;
处理模块,用于利用调整并行度后的逻辑处理算子处理所述实时数据流,将处理结果传输给下一个逻辑处理算子进行再处理,重复上述并行度调整和处理数据过程,直至无逻辑处理算子为止,得到总处理结果。
可选的,所述检测模块,用于:确定资源使用率最高的第一预设数量个机器并取平均,得到资源总使用率;其中,各机器的处理逻辑相同。
可选的,资源包括CPU和内存,所述预设使用率范围大于等于第一阈值且小于第二阈值;
所述调整模块,用于:
在CPU使用率小于第一阈值的情况下,若内存使用率小于第二阈值,则对算子降低第二预设数量个并行度,否则减小算子的槽配置比;其中,配置比为CPU配置量/内存配置量;
在CPU使用率位于预设使用率范围内的情况下,若内存使用率小于第一阈值,则对算子降低第二预设数量个并行度,若大于或等于第二阈值,则对算子增加第三预设数量个并行度,否则不做处理;
在CPU使用率大于或等于第二阈值的情况下,若内存使用率大于或等于第一阈值,则对算子增加第三预设数量个并行度,否则增大算子的槽配置比。
可选的,所述调整模块,用于:
若处理策略为减小算子的槽配置比,则对算子下所有机器的槽配置比进行减小处理;或
若处理策略为增大算子的槽配置比,则对算子下所有机器的槽配置比进行增大处理;或
若处理策略为降低第二预设数量个并行度、或增加第三预设数量个并行度,则将处理策略、算子下当前的机器数量和并行度数量,一同反馈给任务资源管理器,使得任务资源管理器重新调整算子下的机器数量和每个机器下的并行度数量。
可选的,还包括资源释放/拉取模块,用于:
若处理策略为对算子降低第二预设数量个并行度、或增大算子的槽配置比,则将腾出的资源释放给共享集群;或
若处理策略为对算子增加第三预设数量个并行度、或减小算子的槽配置比,则从共享集群中拉取资源。
可选的,所述资源释放/拉取模块,还用于:
判断当前的资源占用数是否达到预设资源占用上限值,若达到,则停止从共享集群中拉取资源。
为实现上述目的,根据本发明实施例的再一方面,提供了一种数据处理电子设备。
本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的数据处理方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的数据处理方法。
根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:基于Flink实时计算任务,随着数据量级的大小和处理速度,自动化调整算子使用资源的并行度,无需数据开发人员调整。数据高峰期时,可以灵活扩大占用资源较大的算子,避免出现打满CPU或内存溢出的情况;数据低谷期时,减少资源占用量。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种数据处理方法的主要流程示意图;
图2(a)是数据流向图示意图;
图2(b)是Flink实时计算工程内部简图;
图3是根据本发明实施例的一种数据处理装置的主要模块示意图;
图4是本发明实施例可以应用于其中的示例性系统架构图;
图5是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
此处对现有技术所存在的问题进行详细阐述:
1)制定合理的算子并行度和共享链策略较难
实时计算工程通常包含多个算子,每个算子扮演着不同的角色,因而处理数据的量和逻辑都不同。项目开发人员根据算子处理数据的逻辑以及处理数据的量级来制定算子的并行度和共享链策略,往往很难做到设置一次就达到最好的效果,需要开发人员多次调整,才能保证项目整体的资源(CPU和内存)使用率在合理范围内。对于没有经验的开发人员,调整项目的时间会更长。
2)应对数据高峰段和低谷段效果有待提高
应用实时计算的一个很常见场景就是电商app中处理用户的实时行为数据。用户行为数据的多寡是随着时间段发生变化的,存在峰值、低谷,白天数据量级大,晚上数据量级小。按照现有方式,工程使用恒定的算子并行度,即全时段系统占用的CPU和内存资源均恒定不变。CPU、内存使用率与数据量级正相关,白天数据量级大,CPU、内存使用率相对合理,但容易出现短时间峰值数据量过大,导致内存溢出情况,程序整体宕机。晚上数据量级小,资源的使用率通常很低,是一种浪费。
3)资源持续占用,不会自动释放多余资源
Flink实时计算工程开始运行时,会根据用户自定义的算子并行度和算子共享链策略,给每个算子分配计算资源;程序启动后,每个算子占用的计算资源恒定,不会随着处理数据量级的变化而改变。现如今,Flink采用共享集群资源模式,即多个Flink计算集群公用一个集群池,若一个工程的资源利用率较低,代表该工程本可以使用较少的资源完成计算任务,却占用了过多的计算资源,因而若能减少占用的资源,这部分资源就能给其他计算资源使用。
参见图1,示出的是本发明实施例提供的一种数据处理方法的主要流程图,包括如下步骤:
S101:接入实时数据流,检测逻辑处理算子所依赖的每个机器的资源使用率,得到资源总使用率;
S102:比对资源总使用率和预设使用率范围,使用与比对结果对应的处理策略,调整逻辑处理算子所依赖的每个机器的并行度;
S103:利用调整并行度后的逻辑处理算子处理所述实时数据流,将处理结果传输给下一个逻辑处理算子进行再处理,重复上述并行度调整和处理数据过程,直至无逻辑处理算子为止,得到总处理结果。
上述实施方式中,对于步骤S101,Flink,一个分布式开源流数据处理引擎,现广泛应用于大数据实时计算场景。Flink实时计算工程处理数据设有较多步骤,如接收数据的步骤、处理数据的步骤、数据入库的步骤,每个步骤都需要专门的组件去处理,这个组件称为算子。每个组件都需要一定的计算机机器去处理数据,不同组件处理数据时的压力也不同,因而正常工作时,所需的机器资源也不同。
Flink实时计算工程接入实时数据流,工程中各个算子均配备有动态调整算子并行度的插件,调用算子并行度插件,首先检测算子下每个机器所占用的CPU和内存的使用率,该步骤直接调用系统命令即可,如top命令;其中,本方案暂不考虑GPU的情况。
同一算子中各机器的处理逻辑相同,因而不会出现一个机器CPU使用率高、内存使用率低,而另一个机器的CPU使用率低、内存使用率高的情况,整体基本相似。在收集到各机器的资源使用率后,选取资源使用率最高的10台(即第一预设数量,仅为示例,实际可调)机器,取平均,得到算子整体的CPU利用率和内存利用率。
对于步骤S102,通常正常集群中,单个计算槽的CPU和内存比例为“1核配备2G内存”,CPU和内存的利用率应介于30%~80%之间,查询结果及处理方式如下表所示:
表1
以上穷举了所有情况,场景1~场景3对应于CPU使用率<30%的情况,场景4~场景6对应于30%≤CPU使用率<80%的情况,场景7~场景9对应于80%≤CPU使用率的情况。此处30%、80%分别对应于预设使用率范围内的第一阈值和第二阈值,降低5并行度、增加3并行度分别对应于第二预设数量和第三预设数量,这些数值仅为示例,实际可以依据工作人员设定。
算子并行度即为槽的数量,如上述降低5并行度即表示减少5个槽、增加3并行度表示增加3个槽。Fink创建集群时会设置单台机器的CPU和内存的规格,比如4核8G,槽是把单个机器再做一次细分,如将单台机器划分为4个槽,每个槽的资源量为1核2G,槽与槽之间是隔离的。
槽配置比为槽的CPU/内存,如CPU/内存=1/2,增大可以变为1/1,减少可以变为1/4。通常增大或者减少一定比例(两者比例可以不同),资源占比就会变成表格中的其他场景,不会无限制增加或者减少。
对于步骤S103,一个Flink计算程序包含多个计算组件处理数据的流程,最简单的流程为接收数据—处理数据—存储数据,对应于Source算子----{一系列逻辑处理算子}----Sink算子,此处的Source算子即为接受数据的算子,Sink算子为存储数据的算子。通常Source算子的并行度和数据源(Flink接收的数据)的分区数保持一致,即一个分区里的数据由一个槽处理。
本方案主要调整逻辑处理算子的并行度。Flink计算中设有背压机制,算子的消费速度受前后算子的影响,后续逻辑处理算子按计算流程的先后顺序,靠近Source算子的逻辑处理算子优先调用算子并行度插件,得到处理策略后,反馈给Flink任务资源管理器,由Flink任务资源管理器重新调整算子下的机器数量和每个机器下的并行度数量。在使用调整并行度后的逻辑处理算子处理实时数据流后,会将处理结果传递给下一个逻辑处理算子继续处理,具体参见图2(a)和图2(b)所示。
在Flink中设有JM(job Manager)和TM(task Manager),JM相当于程序大脑,负责资源的整体分配,TM相当于实际工作执行人,具体做什么、如何做均需JM统一协调。
整个Flink计算任务中各个算子相对独立但又彼此联系,独立在于资源独立,工作内容独立。联系在于,算子处理数据的数据量会受到前后算子处理数据的速度的影响。比如Source算子,当其直接下游算子处理数据较慢时,会适应性降低接收数据的速率,这也是由JM统一协调的。因而当某一算子处理数据的速度发生变化时,可能导致下游算子接收到的数据量随之发生改变,应当按照流程处理顺序,靠后的算子挨个按此逻辑处理。一些场景下,数据流中数据量的大小会随时间发生改变,为解决此问题,Flink实时计算工程会周期性地调整算子并行度,周期大小建议根据实际场景决定,如每晚十二点、在Flink空闲情况下统一调整。
共享集群中有多个Flink实时计算工程同时运行,在调整某一个Flink实时计算工程中一个算子的并行度后,多余的资源会释放给共享集群,不足的部分会向共享集群索取。
比如Source算子的并行度是10,逻辑处理算子的并行度是20,Sink算子的并行度是10,算子之间的策略是不共享,一个并行度(即一个槽)分配1核2G,Flink实时计算工程所需的资源即为40核80G。按照本方案的设定,资源可以弹性变化,但需给Flink实时计算工程设定一个资源占用上限值,在工程整体的资源占用数达到这个数值后,不能再从共享集群中索取资源,避免某个Flink实时计算工程占用了所有的计算资源的情况。
另外通过上述方式,在数据高峰期时,可以灵活扩大占用资源较大的算子,避免出现打满CPU或内存溢出的情况;数据低谷期时,减少资源占用量。
上述实施例所提供的方法,设置动态调整算子并行度的插件,此插件能根据Flink实际工作时各算子实际的资源使用率,动态调整算子的并行度以及槽资源配置比,达到无需开发人员即可自行调整算子并行度的目的。
本发明实施例所提供的方法,相对现有技术,至少存在如下有益效果:
1、随着数据量级的大小和处理速度,自动化调整算子使用资源的并行度,无需数据开发人员自己调整。
2、数据高峰期时,可以灵活扩大占用资源较大的算子,避免出现打满CPU或内存溢出的情况;数据低谷期时,减少资源占用量。
3、在共享集群资源的模式下,多余资源腾出到共享集群,不足的从共享集群拉取,能够大大提高机器资源利用率。
参见图3,示出了本发明实施例提供的一种数据处理装置300的主要模块示意图,包括:
检测模块301,用于接入实时数据流,检测逻辑处理算子所依赖的每个机器的资源使用率,得到资源总使用率;
调整模块302,用于比对资源总使用率和预设使用率范围,使用与比对结果对应的处理策略,调整逻辑处理算子所依赖的每个机器的并行度;
处理模块303,用于利用调整并行度后的逻辑处理算子处理所述实时数据流,将处理结果传输给下一个逻辑处理算子进行再处理,重复上述并行度调整和处理数据过程,直至无逻辑处理算子为止,得到总处理结果。
本发明实施装置中,所述检测模块301,用于:
确定资源使用率最高的第一预设数量个机器并取平均,得到资源总使用率;其中,各机器的处理逻辑相同。
本发明实施装置中,资源包括CPU和内存,所述预设使用率范围大于等于第一阈值且小于第二阈值;
所述调整模块302,用于:
在CPU使用率小于第一阈值的情况下,若内存使用率小于第二阈值,则对算子降低第二预设数量个并行度,否则减小算子的槽配置比;其中,配置比为CPU配置量/内存配置量;
在CPU使用率位于预设使用率范围内的情况下,若内存使用率小于第一阈值,则对算子降低第二预设数量个并行度,若大于或等于第二阈值,则对算子增加第三预设数量个并行度,否则不做处理;
在CPU使用率大于或等于第二阈值的情况下,若内存使用率大于或等于第一阈值,则对算子增加第三预设数量个并行度,否则增大算子的槽配置比。
本发明实施装置中,所述调整模块302,用于:
若处理策略为减小算子的槽配置比,则对算子下所有机器的槽配置比进行减小处理;或
若处理策略为增大算子的槽配置比,则对算子下所有机器的槽配置比进行增大处理;或
若处理策略为降低第二预设数量个并行度、或增加第三预设数量个并行度,则将处理策略、算子下当前的机器数量和并行度数量,一同反馈给任务资源管理器,使得任务资源管理器重新调整算子下的机器数量和每个机器下的并行度数量。
本发明实施装置还包括资源释放/拉取模块,用于:
若处理策略为对算子降低第二预设数量个并行度、或增大算子的槽配置比,则将腾出的资源释放给共享集群;或
若处理策略为对算子增加第三预设数量个并行度、或减小算子的槽配置比,则从共享集群中拉取资源。
本发明实施装置中,所述资源释放/拉取模块,还用于:
判断当前的资源占用数是否达到预设资源占用上限值,若达到,则停止从共享集群中拉取资源。
另外,在本发明实施例中所述装置的具体实施内容,在上面所述方法中已经详细说明了,故在此重复内容不再说明。
图4示出了可以应用本发明实施例的示例性系统架构400,包括终端设备401、402、403,网络404和服务器405(仅仅是示例)。
终端设备401、402、403可以是具有显示屏并且支持网页浏览的各种电子设备,安装有各种通讯客户端应用,用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。
网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
服务器405可以是提供各种服务的服务器,用于执行计算算子资源使用率,调整算子并行度,处理数据以及传递处理结果等操作。
需要说明的是,本发明实施例所提供的方法一般由服务器405执行,相应地,装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机系统500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括检测模块、调整模块、处理模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,调整模块还可以被描述为“算子并行度调整模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行本发明实施例提供的数据处理方法。
本发明实施例的技术方案相对现有技术,至少存在如下有益效果:
1、随着数据量级的大小和处理速度,自动化调整算子使用资源的并行度,无需数据开发人员自己调整。
2、数据高峰期时,可以灵活扩大占用资源较大的算子,避免出现打满CPU或内存溢出的情况;数据低谷期时,减少资源占用量。
3、在共享集群资源的模式下,多余资源腾出到共享集群,不足的从共享集群拉取,能够大大提高机器资源利用率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
接入实时数据流,检测逻辑处理算子所依赖的每个机器的资源使用率,得到资源总使用率;
比对资源总使用率和预设使用率范围,使用与比对结果对应的处理策略,调整逻辑处理算子所依赖的每个机器的并行度;
利用调整并行度后的逻辑处理算子处理所述实时数据流,将处理结果传输给下一个逻辑处理算子进行再处理,重复上述并行度调整和处理数据过程,直至无逻辑处理算子为止,得到总处理结果。
2.根据权利要求1所述的方法,其特征在于,所述得到资源总使用率,包括:
确定资源使用率最高的第一预设数量个机器并取平均,得到资源总使用率;其中,各机器的处理逻辑相同。
3.根据权利要求1或2所述的方法,其特征在于,资源包括CPU和内存,所述预设使用率范围大于等于第一阈值且小于第二阈值;
所述比对资源总使用率和预设使用率范围,使用与比对结果对应的处理策略,调整逻辑处理算子所依赖的每个机器的并行度,包括:
在CPU使用率小于第一阈值的情况下,若内存使用率小于第二阈值,则对算子降低第二预设数量个并行度,否则减小算子的槽配置比;其中,配置比为CPU配置量/内存配置量;
在CPU使用率位于预设使用率范围内的情况下,若内存使用率小于第一阈值,则对算子降低第二预设数量个并行度,若大于或等于第二阈值,则对算子增加第三预设数量个并行度,否则不做处理;
在CPU使用率大于或等于第二阈值的情况下,若内存使用率大于或等于第一阈值,则对算子增加第三预设数量个并行度,否则增大算子的槽配置比。
4.根据权利要求3所述的方法,其特征在于,所述使用与比对结果对应的处理策略,调整逻辑处理算子所依赖的每个机器的并行度,包括:
若处理策略为减小算子的槽配置比,则对算子下所有机器的槽配置比进行减小处理;或
若处理策略为增大算子的槽配置比,则对算子下所有机器的槽配置比进行增大处理;或
若处理策略为降低第二预设数量个并行度、或增加第三预设数量个并行度,则将处理策略、算子下当前的机器数量和并行度数量,一同反馈给任务资源管理器,使得任务资源管理器重新调整算子下的机器数量和每个机器下的并行度数量。
5.根据权利要求3所述的方法,其特征在于,还包括:
若处理策略为对算子降低第二预设数量个并行度、或增大算子的槽配置比,则将腾出的资源释放给共享集群;或
若处理策略为对算子增加第三预设数量个并行度、或减小算子的槽配置比,则从共享集群中拉取资源。
6.根据权利要求5所述的方法,其特征在于,还包括:
判断当前的资源占用数是否达到预设资源占用上限值,若达到,则停止从共享集群中拉取资源。
7.一种数据处理装置,其特征在于,包括:
检测模块,用于接入实时数据流,检测逻辑处理算子所依赖的每个机器的资源使用率,得到资源总使用率;
调整模块,用于比对资源总使用率和预设使用率范围,使用与比对结果对应的处理策略,调整逻辑处理算子所依赖的每个机器的并行度;
处理模块,用于利用调整并行度后的逻辑处理算子处理所述实时数据流,将处理结果传输给下一个逻辑处理算子进行再处理,重复上述并行度调整和处理数据过程,直至无逻辑处理算子为止,得到总处理结果。
8.根据权利要求7所述的装置,其特征在于,资源包括CPU和内存,所述预设使用率范围大于等于第一阈值且小于第二阈值;
所述调整模块,用于:
在CPU使用率小于第一阈值的情况下,若内存使用率小于第二阈值,则对算子降低第二预设数量个并行度,否则减小算子的槽配置比;其中,配置比为CPU配置量/内存配置量;
在CPU使用率位于预设使用率范围内的情况下,若内存使用率小于第一阈值,则对算子降低第二预设数量个并行度,若大于或等于第二阈值,则对算子增加第三预设数量个并行度,否则不做处理;
在CPU使用率大于或等于第二阈值的情况下,若内存使用率大于或等于第一阈值,则对算子增加第三预设数量个并行度,否则增大算子的槽配置比。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210208905.2A CN114579309A (zh) | 2022-03-03 | 2022-03-03 | 一种数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210208905.2A CN114579309A (zh) | 2022-03-03 | 2022-03-03 | 一种数据处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114579309A true CN114579309A (zh) | 2022-06-03 |
Family
ID=81774266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210208905.2A Pending CN114579309A (zh) | 2022-03-03 | 2022-03-03 | 一种数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114579309A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472517A (zh) * | 2023-12-28 | 2024-01-30 | 广州睿帆科技有限公司 | 一种基于Flink分布式处理FTP文件的方法 |
-
2022
- 2022-03-03 CN CN202210208905.2A patent/CN114579309A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117472517A (zh) * | 2023-12-28 | 2024-01-30 | 广州睿帆科技有限公司 | 一种基于Flink分布式处理FTP文件的方法 |
CN117472517B (zh) * | 2023-12-28 | 2024-03-08 | 广州睿帆科技有限公司 | 一种基于Flink分布式处理FTP文件的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110769278B (zh) | 一种分布式视频转码方法及系统 | |
CN107832143B (zh) | 一种物理机资源的处理方法和装置 | |
CN109960575B (zh) | 一种计算能力共享方法、系统及相关设备 | |
US9471387B2 (en) | Scheduling in job execution | |
WO2020063206A1 (zh) | 微服务实例弹性伸缩方法、装置以及存储介质 | |
CN109800261B (zh) | 双数据库连接池的动态控制方法、装置及相关设备 | |
CN112486642B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN112905342A (zh) | 资源调度方法、装置、设备及计算机可读存储介质 | |
CN112749002A (zh) | 一种集群资源动态管理的方法和装置 | |
CN109739634A (zh) | 一种原子任务执行方法及装置 | |
CN111858040A (zh) | 一种资源调度方法和装置 | |
CN114579309A (zh) | 一种数据处理方法和装置 | |
CN111190719B (zh) | 优化集群资源分配的方法、装置、介质及电子设备 | |
CN111586140A (zh) | 一种数据交互的方法及服务器 | |
CN114116173A (zh) | 动态调整任务分配的方法、装置和系统 | |
CN106775925B (zh) | 一种虚拟机cpu的限额处理方法和装置 | |
CN111382141B (zh) | 主从架构配置方法、装置、设备以及计算机可读存储介质 | |
CN112214299A (zh) | 多核处理器及其任务调度方法和装置 | |
CN117369990A (zh) | 一种算力资源调度方法及装置、系统、设备、存储介质 | |
CN107689979B (zh) | 一种下载请求处理方法和处理设备 | |
CN112291326B (zh) | 负载均衡方法、负载均衡装置、存储介质与电子设备 | |
CN111176848B (zh) | 集群任务的处理方法、装置、设备和存储介质 | |
CN114116220A (zh) | 一种gpu共享控制方法、gpu共享控制装置及存储介质 | |
WO2020164612A1 (zh) | 一种智能热点打散的方法、装置、存储介质及计算机设备 | |
CN110955644A (zh) | 一种存储系统的io控制方法、装置、设备及存储介质 |
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 |